文件上传

  1     /// <summary>
  2     /// 文件上传
  3     /// </summary>
  4    public class FileUpload
  5     {
  6         /// <summary>
  7         /// 单个文件上传(只获取第一个文件,返回的文件名是文件的md5值),返回为json数据格式,成功返回{status:"success",website:"a.jpg"},失败,返回{status:"error",website:"error"}
  8         /// </summary>
  9         /// <param name="context">上下文</param>
 10         /// <param name="FilePath">文件路径</param>
 11         /// <param name="outFileName">返回文件的md5</param>
 12         /// <returns>返回json状态信息</returns>
 13        public static string FileUploadSingle(HttpContext context, string FilePath,out string outFileName)
 14        { 
 15            string json="";
 16         //找到目标文件对象
 17         HttpFileCollection hfc = context.Request.Files;
 18             HttpPostedFile hpf = hfc[0];
 19 
 20             if (hpf.ContentLength > 0)
 21             {
 22                 //根据文件的md5的hash值做文件名,防止文件的重复和图片的浪费
 23                 string FileName = CreateFileForFileNameByMd5(hpf.FileName); //CreateDateTimeForFileName(hpf.FileName);//自动生成文件名
 24                 
 25                 string file = System.IO.Path.Combine(FilePath,
 26                  FileName);
 27                 if (!Directory.Exists(Path.GetDirectoryName(file)))
 28                 {
 29                     Directory.CreateDirectory(file);
 30                 }
 31                 hpf.SaveAs(file);
 32                 json = "{status:"success",website:"" + FileName + ""}";
 33                 outFileName = FileName;
 34             }
 35             else {
 36                 json = "{status:"error",website:"error"}";
 37                 outFileName = FilePath;
 38             }
 39           
 40         return json;
 41        
 42        }
 43        /// <summary>
 44        /// 单个文件上传(只获取第一个文件,返回的文件名是文件的md5值),返回为json数据格式,成功返回{status:"success",website:"a.jpg"},失败,返回{status:"error",website:"error"}
 45        /// </summary>
 46        /// <param name="context">上下文</param>
 47        /// <param name="FilePath">文件路径</param>
 48        /// <param name="outFileName">返回文件的md5</param>
 49        /// <returns>返回json状态信息</returns>
 50        public static string FileUploadMulti(HttpContext context, string FilePath, out string[] outFileName)
 51        {
 52           
 53            string json = "";
 54            //找到目标文件对象
 55            HttpFileCollection hfc = context.Request.Files;
 56             outFileName=new  string[hfc.Count];
 57             for (int i=0;i<hfc.Count;i++)
 58             {
 59                 if (hfc[i].ContentLength > 0)
 60                 {
 61                     //根据文件的md5的hash值做文件名,防止文件的重复和图片的浪费
 62                     string FileName = CreateFileForFileNameByMd5(hfc[i].FileName); //CreateDateTimeForFileName(hpf.FileName);//自动生成文件名
 63 
 64                     string file = System.IO.Path.Combine(FilePath,
 65                      FileName);
 66                     if (!Directory.Exists(Path.GetDirectoryName(file)))
 67                     {
 68                         Directory.CreateDirectory(file);
 69                     }
 70                     hfc[i].SaveAs(file);
 71                     outFileName[i]= FileName;
 72                 }
 73                 
 74             }
 75            //如果文件非空,就返回json数据
 76             if (outFileName.Count() > 0)
 77                 json = "{status:"success",website:"" + string.Join(",",outFileName) + ""}";
 78            else
 79              json = "{status:"error",website:"error"}";
 80            
 81 
 82            return json;
 83 
 84        }
 85        /// <summary>
 86        /// 根据文件的md5值当作文件的文件名(
 87        /// </summary>
 88        /// <param name="FileName">文件名</param>
 89        /// <returns>文件的md5值</returns>
 90        public static string CreateFileForFileNameByMd5(string FileName)
 91        {
 92           //return  TZHSWEET.Common.MD5Provider.Hash(FileName)+Path.GetExtension(FileName);
 93            return "";
 94        }
 95 
 96        /// <summary>
 97        /// 根据当前时间生成文件名
 98        /// </summary>
 99        /// <returns></returns>
100        public static string CreateDateTimeForFileName(string FileName)
101        {
102            string datetime=DateTime.Now.ToString ("yyyyMMddhhmmssffff");
103       string FilePath=datetime+Path.GetExtension(FileName);
104            return FilePath;
105        }
106     }
原文地址:https://www.cnblogs.com/xzitluyang/p/5898655.html