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 }