上传文件相关的代码

2017-05-29 11:27:42  访问(1402) 赞(0) 踩(0)


相关下载:WebFileUpLoad     




  • 几个代码段:
    一、枚举定义:
    1、EmUploadFileType
    2、EmUploadFileResult
    3、EmUploadFileEx

    二、类定义
    1、BaseItem.cs
    2、FileUploadOperResult.cs
    3、FileUploadInfo.cs
    4、FileUploadResult.cs
    5、FileWdItem.cs

    三、逻辑方法
    1、FileUploadUtil.cs





  • 
    using System; 
    
    
    namespace SlowX.WebLib.Enums
    {
        /// <summary>
        /// 上传文件类型
        /// </summary>
        [Serializable]
        public partial class UploadFileType  
        {
    
            /// <summary>
            /// 上传文件类型
            /// </summary>
            public UploadFileType()
            {
                // 导入文件/导出文件/文档管理文件/应用上传文件/应用上传的临时文件/临时存储文件
            }
    
            #region Enum - EmUploadFileType
    
            /// <summary>
            /// 上传文件类型
            /// </summary>
            public enum EmUploadFileType
            {
    
                /// <summary>
                /// 导入文件
                /// </summary>
                导入文件 = 1,
                /// <summary>
                /// 导出文件
                /// </summary>
                导出文件,
                /// <summary>
                /// 文档管理文件
                /// </summary>
                文档管理文件,
                /// <summary>
                /// 应用上传文件
                /// </summary>
                应用上传文件,
                /// <summary>
                /// 应用上传的临时文件
                /// </summary>
                应用上传的临时文件,
                /// <summary>
                /// 临时存储文件
                /// </summary>
                临时存储文件,
                /// <summary>
                /// 其他
                /// </summary>
                其他 = 99
            }
    
            #endregion Enum - EmUploadFileType
    
            /// <summary>
            /// 数组 - EmUploadFileType[]
            /// </summary>
            protected static EmUploadFileType[] m_EmArray = null;
    
            /// <summary>
            /// 数组 - EmUploadFileType[]
            /// </summary>
            public static EmUploadFileType[] EmArray
            {
                get
                {
                    if(m_EmArray == null)
                    {
                        m_EmArray = EmArrayBuild();
                    }
    
                    return m_EmArray;
                }
            }
    
            /// <summary>
            /// 构建枚举EmUploadFileType的数组
            /// </summary>
            /// <returns></returns>
            public static EmUploadFileType[] EmArrayBuild()
            {
                return new EmUploadFileType[]
                {
                    EmUploadFileType.导入文件,
        EmUploadFileType.导出文件,
        EmUploadFileType.文档管理文件,
        EmUploadFileType.应用上传文件,
        EmUploadFileType.应用上传的临时文件,
        EmUploadFileType.临时存储文件,
        EmUploadFileType.其他
        
                }; 
            }
        }
    }
    
    
    
  • 
    using System; 
    
    
    namespace SlowX.WebLib.Enums
    {
        /// <summary>
        /// 上传文件类型
        /// </summary>
        [Serializable]
        public partial class UploadFileResult  
        {
    
            /// <summary>
            /// 上传文件类型
            /// </summary>
            public UploadFileResult()
            {
                // 成功/文件过大/文件过小/类型不符合/系统异常
            }
    
            #region Enum - EmUploadFileResult
    
            /// <summary>
            /// 上传文件类型
            /// </summary>
            public enum EmUploadFileResult
            {
    
                /// <summary>
                /// 成功
                /// </summary>
                成功 = 1,
                /// <summary>
                /// 文件过大
                /// </summary>
                文件过大,
                /// <summary>
                /// 文件过小
                /// </summary>
                文件过小,
                /// <summary>
                /// 类型不符合
                /// </summary>
                类型不符合,
                /// <summary>
                /// 系统异常
                /// </summary>
                系统异常
            }
    
            #endregion Enum - EmUploadFileResult
    
            /// <summary>
            /// 数组 - EmUploadFileResult[]
            /// </summary>
            protected static EmUploadFileResult[] m_EmArray = null;
    
            /// <summary>
            /// 数组 - EmUploadFileResult[]
            /// </summary>
            public static EmUploadFileResult[] EmArray
            {
                get
                {
                    if(m_EmArray == null)
                    {
                        m_EmArray = EmArrayBuild();
                    }
    
                    return m_EmArray;
                }
            }
    
            /// <summary>
            /// 构建枚举EmUploadFileResult的数组
            /// </summary>
            /// <returns></returns>
            public static EmUploadFileResult[] EmArrayBuild()
            {
                return new EmUploadFileResult[]
                {
                    EmUploadFileResult.成功,
        EmUploadFileResult.文件过大,
        EmUploadFileResult.文件过小,
        EmUploadFileResult.类型不符合,
        EmUploadFileResult.系统异常
        
                }; 
            }
        }
    }
    
    
    
  • 
    using System; 
    
    
    namespace SlowX.WebLib.Enums
    {
        /// <summary>
        /// 上传文件类型
        /// </summary>
        [Serializable]
        public partial class UploadFileEx  
        {
    
            /// <summary>
            /// 上传文件类型
            /// </summary>
            public UploadFileEx()
            {
                // 缺省/图片/文档/Excel/全部
            }
    
            #region Enum - EmUploadFileEx
    
            /// <summary>
            /// 上传文件类型
            /// </summary>
            public enum EmUploadFileEx
            {
    
                /// <summary>
                /// 缺省
                /// </summary>
                缺省 = 1,
                /// <summary>
                /// 图片
                /// </summary>
                图片,
                /// <summary>
                /// 文档
                /// </summary>
                文档,
                /// <summary>
                /// Excel
                /// </summary>
                Excel,
                /// <summary>
                /// 全部
                /// </summary>
                全部
            }
    
            #endregion Enum - EmUploadFileEx
    
            /// <summary>
            /// 数组 - EmUploadFileEx[]
            /// </summary>
            protected static EmUploadFileEx[] m_EmArray = null;
    
            /// <summary>
            /// 数组 - EmUploadFileEx[]
            /// </summary>
            public static EmUploadFileEx[] EmArray
            {
                get
                {
                    if(m_EmArray == null)
                    {
                        m_EmArray = EmArrayBuild();
                    }
    
                    return m_EmArray;
                }
            }
    
            /// <summary>
            /// 构建枚举EmUploadFileEx的数组
            /// </summary>
            /// <returns></returns>
            public static EmUploadFileEx[] EmArrayBuild()
            {
                return new EmUploadFileEx[]
                {
                    EmUploadFileEx.缺省,
        EmUploadFileEx.图片,
        EmUploadFileEx.文档,
        EmUploadFileEx.Excel,
        EmUploadFileEx.全部
        
                }; 
            }
        }
    }
    
    
    
  • 
    using SlowX.WebLib.Classes.FileUploads;
    using System.Web;
    using System.Collections.Generic;
    
    namespace SlowX.WebLib.Helpers
    { 
        public partial class SlowXWebLibHelper
        {
    
            /// <summary>
            /// 创建FileUploadInfo文件信息,获得文件的属性
            /// </summary>
            /// <param name="emEx"></param>
            /// <param name="emFT"></param>
            /// <returns></returns>
            public FileUploadInfo FileUploadInfoCreate
                (
                    Enums.UploadFileEx.EmUploadFileEx emEx,
                    Enums.UploadFileType.EmUploadFileType emFT
                )
            {
    
                FileUploadInfo theResult = new FileUploadInfo();
                theResult.EmUploadFileTypeV = emFT;
    
                switch (emEx)
                {
                    case Enums.UploadFileEx.EmUploadFileEx.全部:
                        break;
                    case Enums.UploadFileEx.EmUploadFileEx.图片:
                        theResult.AllowExtension = ".png|.jpg|.jpeg|.bmp|.gif|.ico|.psd";
                        break;
                    case Enums.UploadFileEx.EmUploadFileEx.文档:
                        theResult.AllowExtension = ".zip|.7z|.rar|.doc|.docx|.xls|.xlsx|.ppt|.pptx|.png|.jpg|.jpeg|.bmp|.gif|.ico|.psd";
                        break;
                    case Enums.UploadFileEx.EmUploadFileEx.Excel:
                        theResult.AllowExtension = ".xls";
                        break;
                    case Enums.UploadFileEx.EmUploadFileEx.缺省:
                    default:
                        theResult.NoAllowExtension = ".php|.jsp|.asp|.exe|.dll|.aspx|.bat|.js|.vb|.cs";
                        break;
                }
    
                return theResult;
            }
    
    
    
            /// <summary>
            /// 创建FileUploadInfo文件信息,获得文件的属性
            /// </summary>
            /// <param name="emEx"></param>
            /// <param name="emFT"></param>
            /// <returns></returns>
            public FileUploadResult FileUploadResultCreate8HttpPostedFile
                (
                    FileUploadInfo fi,
                    HttpPostedFile fb
                )
            {
                FileUploadResult theResult = new FileUploadResult();
    
                if (HttpContext.Current == null)
                {
                    theResult.EmUploadFileResultV
                        = 
                        Enums.UploadFileResult.EmUploadFileResult.系统异常;
                    theResult.Msg = "没有获得网站属性信息";
                    return theResult;
                }
    
                if (fb == null)
                {
                    theResult.EmUploadFileResultV 
                        = 
                        Enums.UploadFileResult.EmUploadFileResult.系统异常;
                    theResult.Msg = "没有获得上传文件信息";
                    return theResult;
                }
    
                string strPhyRootDir
                    =
                    HttpContext.Current.Request.PhysicalApplicationPath;
    
    
                theResult.FileSize = fb.ContentLength;
                theResult.FileOldName = fb.FileName;
                theResult.FileExtensionSet();
                theResult.FileName = fb.FileName;
    
                if (!theResult.FileCheck(fi))
                    return theResult;
    
                theResult.BuildInfo(strPhyRootDir, "~", fi.EmUploadFileTypeV);
    
                return theResult;
    
            }
    
    
    
            /// <summary>
            /// 获得上传文档相关的内容列表
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public List<FileWdItem> FileWdItemListConvertTo
                (string str)
            {
                if (str == null || str.Length == 0)
                    return null;
    
                List<FileWdItem>
                    theResult
                    =
                    new List<FileWdItem>();
    
                string[] sA = str.Split('|');
    
                string strTmp = null;
                FileWdItem
                     item = null;
    
                string strName = null;
                string strUrl = null;
                int idx = -1;
    
                foreach (string s in sA)
                {
                    strTmp = s;
                    if (strTmp == null)
                        continue;
    
                    if (strTmp.Length == 0)
                        continue;
    
                    strTmp = strTmp.Trim();
    
                    if (strTmp.Length == 0)
                        continue;
    
                    idx = strTmp.IndexOf(":");
    
                    if (idx == -1)
                        continue;
    
                    strName = strTmp.Substring(0, idx);
                    strUrl = strTmp.Substring(idx + 1);
    
                    item = new FileWdItem();
                    item.FileName = strName;
                    item.FileUrl = strUrl;
    
                    theResult.Add(item);
                }
    
                return theResult;
            }
        }
    }
    
    
    
  • using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Web;
    
    namespace SlowX.WebLib.Classes.FileUploads
    {
    
        /// <summary>
        /// 
        /// </summary>
        [Serializable]
        public partial class FileWdItem
        {
            /// <summary>
            /// 
            /// </summary>
            public FileWdItem()
            {
    
            }
    
    
            #region FileName ~ 文件名
    
            /// <summary>
            /// FileName ~ 文件名 == 比如:eking.txt
            /// </summary>
            protected string m_FileName = null;
    
            /// <summary>
            /// FileName ~ 文件名 == 比如:eking.txt
            /// </summary>
            public string FileName
            {
                get
                {
                    return m_FileName;
                }
                set
                {
                    m_FileName = value;
                }
            }
    
            #endregion FileName ~ 文件名
    
    
            #region FileUrl ~ 文件URL地址
    
            /// <summary>
            /// FileUrl ~ 文件URL地址
            /// </summary>
            protected string m_FileUrl = null;
    
            /// <summary>
            /// FileUrl ~ 文件URL地址
            /// </summary>
            public string FileUrl
            {
                get
                {
                    return m_FileUrl;
                }
                set
                {
                    m_FileUrl = value;
                }
            }
    
            #endregion FileUrl ~ 文件URL地址
    
            /// <summary>
            /// 
            /// </summary>
            /// <returns></returns>
            public string ToFileExt()
            {
                string strName = FileName;
    
                if (strName == null || strName.Length == 0)
                {
                    return "";
                }
    
                int idx = strName.LastIndexOf(".");
    
                if (idx == -1)
                    return "";
    
                return strName.Substring(idx);
            }
    
            public string ToPhyFullName(string phyFullPath)
            {
                // FileUrl = ~/ 开头 //
                return phyFullPath + FileUrl.Substring(2);
            }
     
        }
    }
    
    
  • using System;
    using System.Collections.Generic;
    using System.IO; 
    using System.Text; 
    using System.Web;
    
    namespace SlowX.WebLib.Classes.FileUploads
    {
    
        /// <summary>
        /// 上传文件的结果
        /// </summary>
        [Serializable]
        public class FileUploadResult
        {
            /// <summary>
            /// 上传文件的结果
            /// </summary>
            public FileUploadResult()
            {
    
            }
    
    
    
            #region EmUploadFileResultV ~ 上传文件结果
    
            /// <summary>
            /// EmUploadFileResultV ~ 上传文件结果
            /// </summary>
            protected Enums.UploadFileResult.EmUploadFileResult m_EmUploadFileResultV
                =
                Enums.UploadFileResult.EmUploadFileResult.成功;
    
            /// <summary>
            /// EmUploadFileResultV ~ 上传文件结果
            /// </summary>
            public Enums.UploadFileResult.EmUploadFileResult EmUploadFileResultV
            {
                get
                {
                    return m_EmUploadFileResultV;
                }
                set
                {
                    m_EmUploadFileResultV = value;
                }
            }
    
            #endregion EmUploadFileResultV ~ 上传文件结果
    
    
            #region Msg ~ 返回消息
    
            /// <summary>
            /// Msg ~ 返回消息
            /// </summary>
            protected string m_Msg = null;
    
            /// <summary>
            /// Msg ~ 返回消息
            /// </summary>
            public string Msg
            {
                get
                {
                    return m_Msg;
                }
                set
                {
                    m_Msg = value;
                }
            }
    
            #endregion Msg ~ 返回消息
    
            #region TheGuid ~ Guid标识
    
            /// <summary>
            /// TheGuid ~ Guid标识
            /// </summary>
            protected string m_TheGuid = null;
    
            /// <summary>
            /// TheGuid ~ Guid标识
            /// </summary>
            public string TheGuid
            {
                get
                {
                    return m_TheGuid;
                }
                set
                {
                    m_TheGuid = value;
                }
            }
    
            #endregion TheGuid ~ Guid标识
    
            #region FileExtension ~ 文件后缀
    
            /// <summary>
            /// FileExtension ~ 文件后缀 == 比如:.txt
            /// </summary>
            protected string m_FileExtension = null;
    
            /// <summary>
            /// FileExtension ~ 文件后缀 == 比如:.txt
            /// </summary>
            public string FileExtension
            {
                get
                {
                    return m_FileExtension;
                }
                set
                {
                    m_FileExtension = value;
                }
            }
    
            #endregion FileExtension ~ 文件后缀
    
    
            #region FileSize ~ 文件大小
    
            /// <summary>
            /// FileSize ~ 文件大小
            /// </summary>
            protected long m_FileSize = 0;
    
            /// <summary>
            /// FileSize ~ 文件大小
            /// </summary>
            public long FileSize
            {
                get
                {
                    return m_FileSize;
                }
                set
                {
                    m_FileSize = value;
                }
            }
    
            #endregion FileSize ~ 文件大小
    
    
            #region FileName ~ 文件名
    
            /// <summary>
            /// FileName ~ 文件名 == 比如:eking.txt
            /// </summary>
            protected string m_FileName = null;
    
            /// <summary>
            /// FileName ~ 文件名 == 比如:eking.txt
            /// </summary>
            public string FileName
            {
                get
                {
                    return m_FileName;
                }
                set
                {
                    m_FileName = value;
                }
            }
    
            #endregion FileName ~ 文件名
    
    
            #region FileWebDir ~ 文件网站目录
    
            /// <summary>
            /// FileWebDir ~ 文件网站目录
            /// </summary>
            protected string m_FileWebDir = null;
    
            /// <summary>
            /// FileWebDir ~ 文件网站目录
            /// </summary>
            public string FileWebDir
            {
                get
                {
                    return m_FileWebDir;
                }
                set
                {
                    m_FileWebDir = value;
                }
            }
    
            #endregion FileWebDir ~ 文件网站目录
    
    
            #region FilePhyFullName ~ 文件完整物理路径
    
            /// <summary>
            /// FilePhyFullName ~ 文件完整物理路径
            /// </summary>
            protected string m_FilePhyFullName = null;
    
            /// <summary>
            /// FilePhyFullName ~ 文件完整物理路径
            /// </summary>
            public string FilePhyFullName
            {
                get
                {
                    return m_FilePhyFullName;
                }
                set
                {
                    m_FilePhyFullName = value;
                }
            }
    
            #endregion FilePhyFullName ~ 文件完整物理路径
    
    
            #region FileWebFullName ~ 文件Web路径
    
            /// <summary>
            /// FileWebFullName ~ 文件Web路径
            /// </summary>
            protected string m_FileWebFullName = null;
    
            /// <summary>
            /// FileWebFullName ~ 文件Web路径
            /// </summary>
            public string FileWebFullName
            {
                get
                {
                    return m_FileWebFullName;
                }
                set
                {
                    m_FileWebFullName = value;
                }
            }
    
            #endregion FileWebFullName ~ 文件Web路径
    
    
            #region FileOldName ~ 文件原始名字
    
            /// <summary>
            /// FileOldName ~ 文件原始名字
            /// </summary>
            protected string m_FileOldName = null;
    
            /// <summary>
            /// FileOldName ~ 文件原始名字
            /// </summary>
            public string FileOldName
            {
                get
                {
                    return m_FileOldName;
                }
                set
                {
                    m_FileOldName = value;
                }
            }
    
            #endregion FileOldName ~ 文件原始名字
    
            /// <summary>
            /// 设置文件后缀名
            /// </summary>
            public void FileExtensionSet()
            {
                FileExtension = "";
    
                string strFileOldName = FileOldName;
    
                if (strFileOldName == null || strFileOldName.Length == 0)
                {
                    return;
                }
    
                int idx = strFileOldName.LastIndexOf('.');
    
                if (idx == -1)
                {
                    return;
                }
    
                FileExtension = strFileOldName.Substring(idx);
            }
    
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="fi"></param>
            /// <returns></returns>
            public bool FileCheck(FileUploadInfo fi)
            {
                if (fi == null)
                    return true;
    
                if (FileSize < fi.AllowMinSize)
                {
                    EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.文件过小;
                    return false;
                }
    
                if (fi.AllowMaxSize != 0)
                {
                    if (FileSize > fi.AllowMaxSize)
                    {
                        EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.文件过大;
                        return false;
                    }
                }
    
                string strFileExtension = FileExtension;
    
                // 无后缀用 - 表示 //
                if (strFileExtension == null || strFileExtension.Length == 0)
                    strFileExtension = "|-|";
                else
                    strFileExtension = "|" + strFileExtension.Trim().ToLower() + "|";
    
                // 允许类型优先 //
                string str = fi.AllowExtension;
    
                if (str != null && str.Length > 0)
                {
                    str = "|" + str.Trim().ToLower() + "|";
    
                    if (!str.Contains(strFileExtension))
                    {
                        EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.类型不符合;
                        return false;
                    }
                }
    
                // 判断不允许类型 //
                str = fi.NoAllowExtension;
    
                if (str != null && str.Length > 0)
                {
                    str = "|" + str.Trim().ToLower() + "|";
    
                    if (str.Contains(strFileExtension))
                    {
                        EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.类型不符合;
                        return false;
                    }
                }
    
                return true;
    
            }
    
            /// <summary>
            /// 获得文件的路径根目录:WebFiles/[subRootName]/2017[时间年]/3[时间月]/28[时间日]/guid前16位/guid后16位/
            /// </summary>
            /// <returns></returns>
            protected string ToFileRootDir(string subRootName, string theGuid)
            {
                DateTime dtNow = DateTime.Now;
    
                // WebFiles/SaveFiles放保存的文件 //
                // WebFiles/DelFiles放删除的文件(回收站) //
                return "WebFiles/SaveFiles/" + subRootName + "/"
                    + dtNow.Year.ToString() + "/"
                    + dtNow.Month.ToString() + "/"
                    + dtNow.Day.ToString() + "/"
                    + theGuid.Substring(0, 16) + "/"
                    + theGuid.Substring(16) + "/";
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="strPhyRootDir">网站相对的根目录</param>
            /// <param name="preChar">缺省是~</param>
            /// <param name="emFT">上传文件类型</param>
            public void BuildInfo(string strPhyRootDir, string preChar, Enums.UploadFileType.EmUploadFileType emFT)
            {
    
                // 获得Guid //
                string strTheGuid = System.Guid.NewGuid().ToString("N");
                // 获得根目录的名称 //
                string subRootName = Enums.UploadFileType.GetRootDirName(emFT);
                // 网页根目录 //
                string strFileWebDir = ToFileRootDir(subRootName, strTheGuid);
                // 网页目录 //
                this.FileWebDir = strFileWebDir;
                // 物理完整路径 //
                this.FilePhyFullName = strPhyRootDir + strFileWebDir.Replace("/", "\\") + FileName;
                // 网页相对路径 //
                this.FileWebFullName = preChar + "/" + strFileWebDir + FileName;
    
            }
    
            ///// <summary>
            ///// 
            ///// </summary>
            ///// <param name="fb"></param>
            ///// <param name="allowOverwrite"></param>
            ///// <returns></returns>
            //public bool SaveAsFile(HttpPostedFileBase fb, bool allowOverwrite)
            //{
            //    if (FilePhyFullName == null || FilePhyFullName.Length == 0)
            //    {
            //        EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.系统异常;
            //        Msg = "没有指定保存文件的路径";
            //        return false;
            //    }
    
            //    try
            //    {
            //        FileInfo info = new FileInfo(FilePhyFullName);
    
            //        if (info.Exists)
            //        {
            //            if (!allowOverwrite)
            //            {
            //                EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.系统异常;
            //                Msg = "文件已存在";
            //                info = null;
            //                return false;
            //            }
            //            else
            //            {
            //                File.Delete(info.FullName);
            //            }
            //        }
            //        else
            //        {
            //            // 创建目录 //  
            //            if (!info.Directory.Exists)
            //            {
            //                Directory.CreateDirectory(info.Directory.FullName);
            //            }
            //        }
    
            //        // 保存文件 //
            //        fb.SaveAs(info.FullName);
    
            //        info = null;
    
            //        return true;
            //    }
            //    catch (Exception err)
            //    {
            //        EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.系统异常;
            //        Msg = err.Message;
    
            //        return false;
            //    }
            //}
    
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="fb"></param>
            /// <param name="allowOverwrite"></param>
            /// <returns></returns>
            public bool SaveAsUpFile(HttpPostedFile fb, bool allowOverwrite)
            {
                if (FilePhyFullName == null || FilePhyFullName.Length == 0)
                {
                    EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.系统异常;
                    Msg = "没有指定保存文件的路径";
                    return false;
                }
    
                try
                {
                    FileInfo info = new FileInfo(FilePhyFullName);
    
                    if (info.Exists)
                    {
                        if (!allowOverwrite)
                        {
                            EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.系统异常;
                            Msg = "文件已存在";
                            info = null;
                            return false;
                        }
                        else
                        {
                            File.Delete(info.FullName);
                        }
                    }
                    else
                    {
                        // 创建目录 //  
                        if (!info.Directory.Exists)
                        {
                            Directory.CreateDirectory(info.Directory.FullName);
                        }
                    }
    
                    // 保存文件 //
                    fb.SaveAs(info.FullName);
    
                    info = null;
    
                    return true;
                }
                catch (Exception err)
                {
                    EmUploadFileResultV = Enums.UploadFileResult.EmUploadFileResult.系统异常;
                    Msg = err.Message;
    
                    return false;
                }
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <returns></returns>
            public bool IsError()
            {
                if (EmUploadFileResultV == Enums.UploadFileResult.EmUploadFileResult.成功)
                    return false;
    
                return true;
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <returns></returns>
            public string MsgGet()
            {
                if (Msg == null || Msg.Length == 0)
                    return EmUploadFileResultV.ToString();
    
                return Msg;
            }
        }
    }
    
    
  • using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace SlowX.WebLib.Classes.FileUploads
    {
        /// <summary>
        /// 上传文件相关的信息
        /// </summary>
        [Serializable]
        public class FileUploadInfo
        {
            /// <summary>
            /// 上传文件相关的信息
            /// </summary>
            public FileUploadInfo()
            {
    
            }
    
    
            #region EmUploadFileTypeV ~ 上传文件类型
    
            /// <summary>
            /// EmUploadFileTypeV ~ 上传文件类型
            /// </summary>
            protected Enums.UploadFileType.EmUploadFileType m_EmUploadFileTypeV
                =
                Enums.UploadFileType.EmUploadFileType.导入文件;
    
            /// <summary>
            /// EmUploadFileTypeV ~ 上传文件类型
            /// </summary>
            public Enums.UploadFileType.EmUploadFileType EmUploadFileTypeV
            {
                get
                {
                    return m_EmUploadFileTypeV;
                }
                set
                {
                    m_EmUploadFileTypeV = value;
                }
            }
    
            #endregion EmUploadFileTypeV ~ 上传文件类型
    
    
    
            #region AllowMinSize ~ 允许最小值
    
            /// <summary>
            /// AllowMinSize ~ 允许最小值
            /// </summary>
            protected long m_AllowMinSize = 0;
    
            /// <summary>
            /// AllowMinSize ~ 允许最小值
            /// </summary>
            public long AllowMinSize
            {
                get
                {
                    return m_AllowMinSize;
                }
                set
                {
                    m_AllowMinSize = value;
                }
            }
    
            #endregion AllowMinSize ~ 允许最小值
    
    
            #region AllowMaxSize ~ 允许最大值
    
            /// <summary>
            /// AllowMaxSize ~ 允许最大值
            /// </summary>
            protected long m_AllowMaxSize = 0;
    
            /// <summary>
            /// AllowMaxSize ~ 允许最大值
            /// </summary>
            public long AllowMaxSize
            {
                get
                {
                    return m_AllowMaxSize;
                }
                set
                {
                    m_AllowMaxSize = value;
                }
            }
    
            #endregion AllowMaxSize ~ 允许最大值
    
    
            #region AllowExtension ~ 允许后缀
    
            /// <summary>
            /// AllowExtension ~ 允许后缀
            /// </summary>
            protected string m_AllowExtension = null;
    
            /// <summary>
            /// AllowExtension ~ 允许后缀
            /// </summary>
            public string AllowExtension
            {
                get
                {
                    return m_AllowExtension;
                }
                set
                {
                    m_AllowExtension = value;
                }
            }
    
            #endregion AllowExtension ~ 允许后缀
    
    
            #region NoAllowExtension ~ 不允许后缀
    
            /// <summary>
            /// NoAllowExtension ~ 不允许后缀
            /// </summary>
            protected string m_NoAllowExtension = null;
    
            /// <summary>
            /// NoAllowExtension ~ 不允许后缀
            /// </summary>
            public string NoAllowExtension
            {
                get
                {
                    return m_NoAllowExtension;
                }
                set
                {
                    m_NoAllowExtension = value;
                }
            }
    
            #endregion NoAllowExtension ~ 不允许后缀
    
    
        }
    }
    
    
  • using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace SlowX.WebLib.Classes.JsonItems
    {
        /// <summary>
        /// 文件上传结果
        /// </summary>
        [Serializable]
        public class FileUploadOperResult
             :
            BaseItem
        {
            /// <summary>
            /// 
            /// </summary>
            public FileUploadOperResult()
            {
            }
    
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="_IsSucc"></param>
            public FileUploadOperResult(bool _IsSucc)
            {
                m_IsSucc = _IsSucc;
            }
    
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="_IsSucc"></param>
            /// <param name="_Msg"></param>
            public FileUploadOperResult(bool _IsSucc, string _Msg)
            {
                m_IsSucc = _IsSucc;
                m_Msg = _Msg;
            }
    
            #region IsSucc ~ 是否成功
    
            /// <summary>
            /// IsSucc ~ 是否成功
            /// </summary>
            protected bool m_IsSucc = true;
    
            /// <summary>
            /// IsSucc ~ 是否成功
            /// </summary>
            public bool IsSucc
            {
                get
                {
                    return m_IsSucc;
                }
                set
                {
                    m_IsSucc = value;
                }
            }
    
            #endregion IsSucc ~ 是否成功
    
    
            #region Msg ~ 操作提示
    
            /// <summary>
            /// Msg ~ 操作提示
            /// </summary>
            protected string m_Msg = "";
    
            /// <summary>
            /// Msg ~ 操作提示
            /// </summary>
            public string Msg
            {
                get
                {
                    return m_Msg;
                }
                set
                {
                    m_Msg = value;
                }
            }
    
            #endregion Msg ~ 操作提示
    
    
            #region FileName ~ 文件名
    
            /// <summary>
            /// FileName ~ 文件名
            /// </summary>
            protected string m_FileName = null;
    
            /// <summary>
            /// FileName ~ 文件名
            /// </summary>
            public string FileName
            {
                get
                {
                    return m_FileName;
                }
                set
                {
                    m_FileName = value;
                }
            }
    
            #endregion FileName ~ 文件名
    
    
            #region FileExtension ~ 文件后缀
    
            /// <summary>
            /// FileExtension ~ 文件后缀
            /// </summary>
            protected string m_FileExtension = null;
    
            /// <summary>
            /// FileExtension ~ 文件后缀
            /// </summary>
            public string FileExtension
            {
                get
                {
                    return m_FileExtension;
                }
                set
                {
                    m_FileExtension = value;
                }
            }
    
            #endregion FileExtension ~ 文件后缀
    
    
            #region FileUrl ~ 文件URL地址
    
            /// <summary>
            /// FileUrl ~ 文件URL地址
            /// </summary>
            protected string m_FileUrl = null;
    
            /// <summary>
            /// FileUrl ~ 文件URL地址
            /// </summary>
            public string FileUrl
            {
                get
                {
                    return m_FileUrl;
                }
                set
                {
                    m_FileUrl = value;
                }
            }
    
            #endregion FileUrl ~ 文件URL地址
    
    
            #region FileChunked ~ 文件是否分块
    
            /// <summary>
            /// FileChunked ~ 文件是否分块
            /// </summary>
            protected bool m_FileChunked = false;
    
            /// <summary>
            /// FileChunked ~ 文件是否分块
            /// </summary>
            public bool FileChunked
            {
                get
                {
                    return m_FileChunked;
                }
                set
                {
                    m_FileChunked = value;
                }
            }
    
            #endregion FileChunked ~ 文件是否分块
    
    
            #region FileGuid ~ 文件的Guid
    
            /// <summary>
            /// FileGuid ~ 文件的Guid
            /// </summary>
            protected string m_FileGuid = null;
    
            /// <summary>
            /// FileGuid ~ 文件的Guid
            /// </summary>
            public string FileGuid
            {
                get
                {
                    return m_FileGuid;
                }
                set
                {
                    m_FileGuid = value;
                }
            }
    
            #endregion FileGuid ~ 文件的Guid
    
    
    
               
    
            /// <summary>
            /// 转成Json
            /// </summary>
            /// <returns></returns>
            public override string ToJson()
            {
                StringBuilder theResult = new StringBuilder();
    
                theResult.Append(KeyStrToJson("Msg", Msg));
    
                theResult.Append(",");
                theResult.Append(KeyStrToJson("FileName", FileName));
    
                theResult.Append(",");
                theResult.Append(KeyStrToJson("FileExtension", FileExtension));
    
                theResult.Append(",");
                theResult.Append(KeyStrToJson("FileUrl", FileUrl));
    
                theResult.Append(",");
                theResult.Append(KeyStrToJson("FileGuid", FileGuid));
    
                theResult.Append(",");
                theResult.Append(KeyBooleanToJson("FileChunked", FileChunked));
    
                theResult.Append(",");
                theResult.Append(KeyBooleanToJson("IsSucc", IsSucc));
    
                return "{" + theResult.ToString() + "}";
    
                // return "{\"IsSucc\":" + IsSucc.ToString().ToLower() + ",\"Msg\":\"" + StrToJson(Msg) + "\"}";
            }
        }
    }
    
    
  • using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace SlowX.WebLib.Classes.JsonItems
    {
        /// <summary>
        /// 树节点
        /// </summary>
        [Serializable]
        public class BaseItem
        {
            /// <summary>
            /// 
            /// </summary>
            public BaseItem()
            {
    
            }
    
    
    
            /// <summary>
            /// 字符串转成Json格式的内容 - StrToJson
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public string StrToJson(string str)
            {
                if (str == null)
                    return "";
    
                int iLen = str.Length;
    
                StringBuilder theResult = new StringBuilder();
    
                char c = (char)0;
    
                for (int i = 0; i < iLen; ++i)
                {
                    c = str[i];
    
                    switch (c)
                    {
                        case '\r':
                            theResult.Append("\\r");
                            break;
                        case '\n':
                            theResult.Append("\\n");
                            break;
                        case '\t':
                            theResult.Append("\\t");
                            break;
                        case '\\':
                            theResult.Append("\\\\");
                            break;
                        case '"':
                            theResult.Append("\\\"");
                            break;
                        default:
                            theResult.Append(c);
                            break;
                    }
                }
    
                return theResult.ToString();
            }
    
    
    
    
            /// <summary>
            /// 组合json格式的Key:Value - KeyStrToJson
            /// </summary>
            /// <param name="strName"></param>
            /// <param name="str"></param>
            /// <returns></returns>
            protected string KeyStrToJson(string strName, string str)
            {
                str = StrToJson(str);
    
                return "\"" + strName + "\":\"" + str + "\"";
            }
    
    
            /// <summary>
            /// 组合json格式的Key:Value - KeyStrToJson
            /// </summary>
            /// <param name="strName"></param>
            /// <param name="str"></param>
            /// <returns></returns>
            protected string KeyIntToJson(string strName, int str)
            {
                return "\"" + strName + "\":" + str.ToString() + "";
            }
    
    
            /// <summary>
            /// 组合json格式的Key:Value - KeyStrToJson
            /// </summary>
            /// <param name="strName"></param>
            /// <param name="theValue"></param>
            /// <returns></returns>
            protected string KeyBooleanToJson(string strName, bool theValue)
            {
                return "\"" + strName + "\":" + theValue.ToString().ToLower() + "";
            }
    
    
            /// <summary>
            /// 转成Json
            /// </summary>
            /// <returns></returns>
            public virtual string ToJson()
            {
                return "";
            }
    
        }
    }
    
    
  • 
     
    using System; 
    
    
    namespace SlowX.WebLib.Enums
    { 
        public partial class UploadFileType  
        {
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="em"></param>
            /// <returns></returns>
            public static string GetRootDirName(EmUploadFileType em)
            {
                switch (em)
                {
                    case EmUploadFileType.导入文件:
                        return "FileImports";
                    case EmUploadFileType.导出文件:
                        return "FileExports";
                    case EmUploadFileType.应用上传文件:
                        return "AppUps";
                    case EmUploadFileType.应用上传的临时文件:
                        return "AppTmpUps";
                    case EmUploadFileType.文档管理文件:
                        return "UserUps";
                    case EmUploadFileType.临时存储文件:
                        return "AppTmpSaves";
                    case EmUploadFileType.其他:
                    default:
                        return "Others";
                }
    
            }
        }
    }
    
    
    
  • <%@ WebHandler Language="C#" Class="FileUploadHandler" %>
    
    using System;
    
    using System.Web;
    using SlowX.WebLib.Classes.JsonItems;
    using SlowX.WebLib.Classes.FileUploads;
    
    public class FileUploadHandler : IHttpHandler {
    
    
        #region 文件分片
    
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
    
            if (context.Request.Files == null)
                return;
    
            if (context.Request.Files.Count == 0)
                return;
    
            string strJson = null;
    
            FileUploadOperResult op = new FileUploadOperResult();
    
            // 没有分片直接保存 //
            HttpPostedFile fb = context.Request.Files[0];
    
            if (fb == null)
            {
                op.IsSucc = false;
                op.Msg = "没有获得上传控件";
                strJson = op.ToJson();
                context.Response.Write(strJson);
                return;
            }
    
            SlowX.WebLib.Helpers.SlowXWebLibHelper
                wh
                =
                SlowX.WebLib.Helpers.SlowXWebLibHelper.cInstance;
    
            FileUploadInfo fi
                =
                wh.FileUploadInfoCreate
                (
                    SlowX.WebLib.Enums.UploadFileEx.EmUploadFileEx.缺省,
                    SlowX.WebLib.Enums.UploadFileType.EmUploadFileType.临时存储文件
                );
    
            FileUploadResult fr
                =
                wh.FileUploadResultCreate8HttpPostedFile(fi, fb);
    
            if (fr.IsError())
            {
                op.IsSucc = false;
                op.Msg = fr.MsgGet();
    
                strJson = op.ToJson();
                context.Response.Write(strJson);
                return;
            }
    
            fr.SaveAsUpFile(fb, false);
    
            // context.Request.Files[0].SaveAs(context.Server.MapPath("~/FilesStorage/" + DateTime.Now.ToFileTime() + Path.GetExtension(context.Request.Files[0].FileName)));
            // context.Response.Write("{\"chunked\" : false, \"hasError\" : false, \"url:../../FilesStorage/" + DateTime.Now.ToFileTime() + Path.GetExtension(context.Request.Files[0].FileName)+" }");
            // context.Response.Write("\"url:../../FilesStorage/" + DateTime.Now.ToFileTime() + Path.GetExtension(context.Request.Files[0].FileName) + "");
    
    
            op.IsSucc = true;
            op.Msg = "上传成功";
            op.FileName = fr.FileName;
            op.FileGuid = fr.TheGuid;
            op.FileExtension = fr.FileExtension;
            op.FileChunked = false;
            op.FileUrl = fr.FileWebFullName;
    
            strJson = op.ToJson();
            context.Response.Write(strJson);
    
            return;
    
            //// 如果进行了分片 //
            //if (context.Request.Form.AllKeys.Any(m => m == "chunk"))
            //{
            //    eKingSzdfPageHelper wh
            //        =
            //        eKingSzdfPageHelper.ekInstance;
    
            //    //取得chunk和chunks
            //    int chunk = Convert.ToInt32(context.Request.Form["chunk"]);//当前分片在上传分片中的顺序(从0开始)
            //    int chunks = Convert.ToInt32(context.Request.Form["chunks"]);//总分片数
            //    // 根据GUID创建用该GUID命名的临时文件夹 //
    
            //    // string folder = context.Server.MapPath("~/FilesStorage/" + context.Request["guid"] + "/");
            //    string theGuid = context.Request["guid"];
            //    // string folder = context.Request.PhysicalApplicationPath + "WebFiles/SaveFiles/AppTmpMergeSaves/" + theGuid + "/"; 
            //    string folder = wh.FileUploadToMergeFileRootName(context, theGuid);
            //    string path = folder + chunk;
    
            //    //建立临时传输文件夹
            //    if (!Directory.Exists(Path.GetDirectoryName(folder)))
            //    {
            //        Directory.CreateDirectory(folder);
            //    }
    
            //    FileStream addFile = new FileStream(path, FileMode.Append, FileAccess.Write);
            //    BinaryWriter AddWriter = new BinaryWriter(addFile);
            //    //获得上传的分片数据流
            //    HttpPostedFile file = context.Request.Files[0];
            //    Stream stream = file.InputStream;
    
            //    BinaryReader TempReader = new BinaryReader(stream);
            //    //将上传的分片追加到临时文件末尾
            //    AddWriter.Write(TempReader.ReadBytes((int)stream.Length));
            //    //关闭BinaryReader文件阅读器
            //    TempReader.Close();
            //    stream.Close();
            //    AddWriter.Close();
            //    addFile.Close();
    
            //    TempReader.Dispose();
            //    stream.Dispose();
            //    AddWriter.Dispose();
            //    addFile.Dispose();
    
            //    FileUploadOperResult op = new FileUploadOperResult();
            //    op.IsSucc = true;
            //    op.FileChunked = true;
            //    op.FileGuid = theGuid;
            //    op.FileName = file.FileName;
            //    op.FileUrl = "";
            //    op.FileExtension = Path.GetExtension(file.FileName);
    
    
            //    strJson = op.ToJson();
            //    context.Response.Write(strJson);
    
            //    //context.Response.Write("{\"chunked\" : true, \"hasError\" : false, \"ek\": \"eking\", \"url\": \"" + Path.GetExtension(file.FileName) + "\"}");
            //    // context.Response.Write("\"chunked\" : true, \"hasError\" : false, \"ek\": \"eking\", \"url:../../FilesStorage/" + context.Request["guid"] + Path.GetExtension(file.FileName) + "");
            //}
            //else
            //{
            //    FileUploadOperResult op = new FileUploadOperResult();
    
            //    // 没有分片直接保存 //
            //    HttpPostedFile fb = context.Request.Files[0];
    
            //    if (fb == null)
            //    {
            //        op.IsSucc = false;
            //        op.Msg = "没有获得上传控件";
            //        strJson = op.ToJson();
            //        context.Response.Write(strJson);
            //        return;
            //    }
    
            //    eKing.SzdfPage.Helpers.eKingSzdfPageHelper
            //        wh
            //        =
            //        eKing.SzdfPage.Helpers.eKingSzdfPageHelper.ekInstance;
    
            //    FileUploadInfo fi
            //        =
            //        wh.FileUploadInfoCreate
            //        (
            //            eKing.SzdfPage.Enums.UploadFileEx.EmUploadFileEx.缺省,
            //            eKing.SzdfPage.Enums.UploadFileType.EmUploadFileType.临时存储文件
            //        );
    
            //    FileUploadResult fr
            //        =
            //        wh.FileUploadResultCreate8HttpPostedFile(fi, fb);
    
            //    if (fr.IsError())
            //    {
            //        op.IsSucc = false;
            //        op.Msg = fr.MsgGet();
    
            //        strJson = op.ToJson();
            //        context.Response.Write(strJson);
            //        return;
            //    }
    
            //    fr.SaveAsUpFile(fb, false);
    
            //    // context.Request.Files[0].SaveAs(context.Server.MapPath("~/FilesStorage/" + DateTime.Now.ToFileTime() + Path.GetExtension(context.Request.Files[0].FileName)));
            //    // context.Response.Write("{\"chunked\" : false, \"hasError\" : false, \"url:../../FilesStorage/" + DateTime.Now.ToFileTime() + Path.GetExtension(context.Request.Files[0].FileName)+" }");
            //    // context.Response.Write("\"url:../../FilesStorage/" + DateTime.Now.ToFileTime() + Path.GetExtension(context.Request.Files[0].FileName) + "");
    
    
            //    op.IsSucc = true;
            //    op.Msg = "上传成功";
            //    op.FileName = fr.FileName;
            //    op.FileGuid = fr.TheGuid;
            //    op.FileExtension = fr.FileExtension;
            //    op.FileChunked = false;
            //    op.FileUrl = fr.FileWebFullName;
    
            //    strJson = op.ToJson();
            //    context.Response.Write(strJson);
    
            //    return;
            //}
        }
    
        #endregion
    
        /// <summary>
        /// 
        /// </summary>
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
    
  • using eKing.SzdfPage.Helpers;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Web;
    
    
    namespace eKingWGSS.Website.Management.Handlers.WebFileUpLoad
    {
        /// <summary>
        /// MergeFilesHandler 的摘要说明
        /// </summary>
        public class MergeFilesHandler : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                eKingSzdfPageHelper wh
                       =
                       eKingSzdfPageHelper.ekInstance;
    
    
                context.Response.ContentType = "text/plain";
    
                string theGuid = context.Request["guid"];
                string fileExt = context.Request["fileExt"];
                // string root = context.Server.MapPath("~/FilesStorage/");
                // string root = wh.FileUploadToMergeFileRootName(context, theGuid);
    
                string sourcePath = wh.FileUploadToMergeFileRootName(context, theGuid); // Path.Combine(root, guid + "/");//源数据文件夹
                // 合并后的文件 //
                string targetPath = wh.FileUploadToMergeFileRootName(context, null) + Guid.NewGuid() + fileExt;
                // string targetPath = Path.Combine(root, Guid.NewGuid() + fileExt);//合并后的文件
    
                DirectoryInfo dicInfo = new DirectoryInfo(sourcePath);
                if (Directory.Exists(Path.GetDirectoryName(sourcePath)))
                {
                    FileInfo[] files = dicInfo.GetFiles();
                    foreach (FileInfo file in files.OrderBy(f => int.Parse(f.Name)))
                    {
                        FileStream addFile = new FileStream(targetPath, FileMode.Append, FileAccess.Write);
                        BinaryWriter AddWriter = new BinaryWriter(addFile);
    
                        //获得上传的分片数据流
                        Stream stream = file.Open(FileMode.Open);
                        BinaryReader TempReader = new BinaryReader(stream);
                        //将上传的分片追加到临时文件末尾
                        AddWriter.Write(TempReader.ReadBytes((int)stream.Length));
                        //关闭BinaryReader文件阅读器
                        TempReader.Close();
                        stream.Close();
                        AddWriter.Close();
                        addFile.Close();
    
                        TempReader.Dispose();
                        stream.Dispose();
                        AddWriter.Dispose();
                        addFile.Dispose();
                    }
    
                    // 删除旧目录 //
                    DeleteFolder(sourcePath);
    
                    // 打印结果 //
                    context.Response.Write("{\"chunked\" : true, \"hasError\" : false, \"savePath\" :\"" + System.Web.HttpUtility.UrlEncode(targetPath) + "\"}");
                    //context.Response.Write("{\"hasError\" : false}");
                }
                else
                {
                    context.Response.Write("{\"hasError\" : true}");
                }
            }
    
    
    
            /// <summary>
            /// 删除文件夹及其内容
            /// </summary>
            /// <param name="dir"></param>
            private static void DeleteFolder(string strPath)
            {
                //删除这个目录下的所有子目录
                if (Directory.GetDirectories(strPath).Length > 0)
                {
                    foreach (string fl in Directory.GetDirectories(strPath))
                    {
                        Directory.Delete(fl, true);
                    }
                }
                //删除这个目录下的所有文件
                if (Directory.GetFiles(strPath).Length > 0)
                {
                    foreach (string f in Directory.GetFiles(strPath))
                    {
                        System.IO.File.Delete(f);
                    }
                }
                Directory.Delete(strPath, true);
            }
    
            /// <summary>
            /// 合并文件
            /// </summary>
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    
    
    
  •  
    
        #region 保存事件
    
        /// <summary>
        /// 保存事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                btnUploadImageSaveClick(null);
            }
            catch (Exception err)
            {
                PageBaseExceptionDO(err);
            }
        }
    
    
    
    
        /// <summary>
        /// 
        /// </summary>
        /// <param name="imageFileName"></param>
        /// <returns></returns>
        protected int GetImageW(string imageFileName)
        {
            try
            {
                System.Drawing.Image img
                =
                System.Drawing.Image.FromFile(imageFileName);
    
                int theResult = img.Width;
    
                img.Dispose();
    
                return theResult;
            }
            catch
            {
                return 0;
            }
        }
    
        protected int GetImageH(string imageFileName)
        {
            try
            {
                System.Drawing.Image img
                =
                System.Drawing.Image.FromFile(imageFileName);
    
                int theResult = img.Height;
    
                img.Dispose();
    
                return theResult;
            }
            catch
            {
                return 0;
            }
        }
    
    
    
    
        /// <summary>
        /// 
        /// </summary>
        /// <param name="xdbHelper"></param>
        protected void btnUploadImageSaveClick
            (
                DBHelper xdbHelper
            )
        {
    
            string fileUrl = txt_File.Text.Trim();
    
            if (fileUrl.Length == 0)
            {
                JSSlowXFunctions.Alert("请先上传文件。");
                return;
            }
    
            SlowX.WebLib.Helpers.SlowXWebLibHelper
              wh
              =
              SlowX.WebLib.Helpers.SlowXWebLibHelper.cInstance;
    
            List<FileWdItem> fileList = wh.FileWdItemListConvertTo(fileUrl);
    
            if (fileList == null || fileList.Count == 0)
            {
                JSSlowXFunctions.Alert("请先上传文件。");
                return;
            }
    
            CodeDetailOrViewUrlParams
               up = CurCodeDetailOrViewUrlParams;
    
            if (up.ItemId == 0)
            {
                JSSlowXFunctions.Alert("ItemId == 0,请先保存主表。");
                return;
            }
    
    
            bool bIsCreate = true;
    
            if (xdbHelper == null)
            {
                xdbHelper
                    =
                    SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
            }
            else
            {
                // 没有打开链接 //
                bIsCreate = xdbHelper.IsNotOpen();
            }
    
            try
            {
                if (bIsCreate)
                    xdbHelper.OpenDBHelper();
    
                SlowX.WebLib.Model.UTB_WEB_CODE_ITEM
                    modelItem
                    =
                    SlowX.WebLib.Business.UTB_WEB_CODE_ITEM.instance.GetBaseModelById(up.ItemId, xdbHelper)
                    as
                    SlowX.WebLib.Model.UTB_WEB_CODE_ITEM;
    
                if (modelItem == null)
                {
                    JSSlowXFunctions.Alert("没有获得主表");
                    return;
                }
    
    
    
    
    
    
                SlowX.WebLib.Business.UTB_WEB_IMG_ITEM
                   bll = SlowX.WebLib.Business.UTB_WEB_IMG_ITEM.instance;
    
                SlowX.WebLib.Entity.UTB_WEB_IMG_ITEM
                    entity = new SlowX.WebLib.Entity.UTB_WEB_IMG_ITEM();
    
                DateTime dtNow = bll.GetNow(xdbHelper);
    
                ISaveDriver isave = entity;
    
                FileWdItem
                        fdItem = null;
    
                string newFileUrl = null;
                string phyFullPath = Request.PhysicalApplicationPath;
                string fileFullName = null;
    
                SlowX.WebLib.Enums.ImageExt.EmImageExt
                           []
                           emA = SlowX.WebLib.Enums.ImageExt.EmArray;
    
    
                bool isContinue = false;
                string strExtension = null;
                int EmImageExtValue = 0;
                string onlyName = "";
                int iW = 0;
                int iH = 0; FileInfo fi = null;
    
                // 多文件保存 //
                for (int i = 0; i < fileList.Count; i++)
                {
    
                    fdItem = fileList[i];
    
                    if (fdItem == null)
                        continue;
    
                    fileFullName = fdItem.ToPhyFullName(phyFullPath);
    
    
    
    
                    fi = new FileInfo(fileFullName);
    
                    if (fi == null)
                        continue;
    
                    if (!fi.Exists)
                        continue;
    
                    strExtension = fi.Extension;
    
                    if (strExtension == null || strExtension.Length == 0)
                        continue;
    
                    strExtension = strExtension.Trim().ToLower();
                    isContinue = true;
    
                    foreach (SlowX.WebLib.Enums.ImageExt.EmImageExt em in emA)
                    {
                        if (strExtension == "." + em.ToString().ToLower())
                        {
                            onlyName = fi.Name.Substring(0, fi.Name.Length - strExtension.Length);
    
                            EmImageExtValue = (int)em;
                            isContinue = false;
                            break;
                        }
                    }
    
                    if (isContinue)
                        continue;
    
    
    
                    iW = GetImageW(fi.FullName);
                    iH = GetImageH(fi.FullName);
    
                    isave.ClearAllISaveItem();
    
                    isave.AddISaveItem(entity._TableItemGuid, modelItem.TheGuid);
                    isave.AddISaveItem(entity._TableItemId, modelItem.ID);
                    isave.AddISaveItem(entity._CreateTime, dtNow);
                    isave.AddISaveItem(entity._EmImageExtValue, EmImageExtValue);
                    isave.AddISaveItem(entity._Hits, 0);
                    isave.AddISaveItem(entity._HitTime, dtNow);
                    isave.AddISaveItem(entity._ID, bll.GetNewLongID(xdbHelper));
                    isave.AddISaveItem(entity._ImageUrl, fdItem.FileUrl);
                    isave.AddISaveItem(entity._ImgHeight, iH);
                    isave.AddISaveItem(entity._ImgWidth, iW);
                    isave.AddISaveItem(entity._SortId, ddl_SortId.SelectedValue);
                    isave.AddISaveItem(entity._TheDescription, "");
                    isave.AddISaveItem(entity._TheKeywords, onlyName);
    
                    isave.AddISaveItem(entity._TheName, onlyName);
    
                    isave.AddISaveItem(entity._UpdateTime, dtNow);
                    isave.AddISaveItemByBoolean(entity._IsShow, chk_IsShow.Checked);
    
                    bll.Insert(entity, xdbHelper);
    
                }
    
    
                if (bIsCreate)
                    xdbHelper.EndDBHelper();
    
    
            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();
    
                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }
    
            JSSlowXFunctions.AlertRedirect("保存成功", up.ToListUrl());
    
    
        }
    
        
    
        /// <summary>
        /// 获得除去后缀后的仅文件名
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        protected string FileOnlyNameGet(string fileName)
        {
            if (fileName == null || fileName.Length == 0)
                return "";
    
            int idxOne = fileName.LastIndexOf('/');
            int idxTwo = fileName.LastIndexOf('\\');
    
            if (idxOne != -1)
            {
                if (idxTwo > idxOne)
                    fileName = fileName.Substring(idxTwo + 1);
                else
                    fileName = fileName.Substring(idxOne + 1);
            }
            else
            {
                if (idxTwo != -1)
                    fileName = fileName.Substring(idxTwo + 1);
            }
    
            int idx = fileName.LastIndexOf('.');
    
            if (idx != -1)
                fileName = fileName.Substring(0, idx);
    
            return fileName;
        }
    
    
    
        #endregion 保存事件
    
    
        
    
    
  • <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BatchDetail.aspx.cs" Inherits="WebForms_AdminBlank_WebLib_Code_Item_Img_BatchDetail"
        ValidateRequest="false" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>
            <%=ShowPageTitle%></title>
        <link href="<%=strPhyPath %>/css/blankadm.css?v=201701271" rel="stylesheet" media="all" />
        <!-- 上传文档相关的样式 -->
        <link href="<%=strPhyPath %>/JavaScripts/WebFileUpLoad/css/webuploader.css" rel="stylesheet"
            type="text/css" />
        <link href="<%=strPhyPath %>/JavaScripts/WebFileUpLoad/css/style.css" rel="stylesheet"
            type="text/css" />
        <!-- 上传文档相关的样式End -->
        <style>
            #wrapper
            {
                width: 980px;
                margin: 0 auto;
                margin: 1em;
                width: auto;
                height: 235px;
            }
            #container
            {
                border: 1px solid #dadada;
                color: #838383;
                font-size: 12px;
                margin-top: 10px;
                background-color: #FFF;
                height: 235px;
            }
            #uploader .queueList
            {
                margin: 20px;
            }
            #uploader .placeholder
            {
                /*border: 3px dashed #e6e6e6;*/
                min-height: 235px;
                padding-top: 0px;
                text-align: center; /*background: url(./image.png) center 83px no-repeat;*/
                color: #cccccc;
                font-size: 18px;
                position: relative;
            }
        </style>
        <!-- 上传文档相关方法 -->
        <script language="javascript" type="text/javascript">
    
            // 相对根目录 //
            var GlobalPhyPath = "<%=strPhyPath %>";
        
        </script>
    
        <script src="<%=strPhyPath %>/JavaScripts/WebFileUpLoad/js/jquery.js" type="text/javascript"></script>
    
        <script src="<%=strPhyPath %>/JavaScripts/WebFileUpLoad/js/webuploader.js" type="text/javascript"></script>
    
        <script src="<%=strPhyPath %>/JavaScripts/WebFileUpLoad/js/upload.js" type="text/javascript"></script>
    
        <!-- 上传文档相关方法END -->
        
        <script language="javascript" type="text/javascript">
    
    
            function ToFileNameList() {
                var theResult = "";
                var theA = fileNameList;
                var iLen = theA.length;
                var i = 0;
                var rData = null;
    
                for (i = 0; i < iLen; ++i) {
                    rData = theA[i];
                    if (rData == null)
                        continue;
    
                    theResult += rData.FileName + ":" + rData.FileUrl + "|";
                }
    
                return theResult;
            }
    
            var fileIsLoad = false;
            
            function ToLoadFile() {
    
                if (fileIsLoad)
                    return;
                    
                var f = ToFileNameList();
                var vData = document.getElementById("<%=txt_File.ClientID %>").value;
    
                // 考虑原先存储的文件情况 //
                if (vData != null && vData != "") {
                    vData += "|" + f;
                }
                else {
                    vData = f;
                }
    
                document.getElementById("<%=txt_File.ClientID %>").value = vData;
                fileIsLoad = true;
                
                return false;
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <table width="100%">
            <tr>
                <td colspan="2" width="400px">
                    <b>
                        <%=ShowPageTitle%></b>&nbsp;
                    <asp:Button ID="btn_Save" runat="server" Text="保存" OnClick="btn_Save_Click" OnClientClick="ToLoadFile();" />
                </td>
                <td colspan="2" align="right">
                    <asp:Button ID="btn_LoadFile" runat="server" Text="加载文件" OnClientClick="ToLoadFile(); return false;" />
                    &nbsp;&nbsp;
                    <a href="<%=Request.RawUrl %>">刷新</a>&nbsp;
                    <asp:Button ID="btnt_Return" runat="server" Text="返回" OnClick="btnt_Return_Click" />
                    &nbsp;
                </td>
            </tr>
            <tr>
                <td align="left" colspan="4">
                    <div id="container">
                        <!--头部,相册选择和格式选择-->
                        <div id="uploader">
                            <div class="queueList">
                                <div id="dndArea" class="placeholder">
                                    <div id="filePicker">
                                    </div>
                                    <p style="margin-top: 80px;">
                                        单次最多可选10个文件</p>
                                </div>
                            </div>
                            <div class="statusBar" hidden="hidden">
                                <div class="progress">
                                    <span class="text">0%</span> <span class="percentage"></span>
                                </div>
                                <div class="info">
                                </div>
                                <div class="btns">
                                    <div id="filePicker2">
                                    </div>
                                    <div class="uploadBtn">
                                        开始上传</div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <br /><br />
                </td>
            </tr>
            <tr>
                <td align="right" width="100px">
                    文件:
                </td>
                <td align="left" colspan="3">
                    <asp:TextBox ID="txt_File" TextMode="MultiLine" ReadOnly="false" Height="100px" runat="server" Width="98%">
                    </asp:TextBox>
                </td>
            </tr>
            <tr>
                <td align="right" width="100px">
                    类型:
                </td>
                <td align="left" colspan="3">
                    <asp:DropDownList ID="ddl_SortId" runat="server" Width="98%">
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td align="right" width="100px">
                    是否显示:
                </td>
                <td align="left" colspan="3">
                    <asp:CheckBox ID="chk_IsShow" runat="server" Checked="true" />
                </td>
            </tr>
        </table>
        </form>
    </body>
    </html>
    
    

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)