c#通用上传文件类(网摘)
Upfile.aspx:
上传文件
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Web;
5
using System.Web.UI;
6
using System.Web.UI.WebControls;
7
using System.Web.UI.WebControls.WebParts;
8
using System.Web.UI.HtmlControls;
9![]()
10![]()
/**//**//**//// <summary>
11
/// Cls_Upfile 的摘要说明
12
/// </summary>
13
///
14
namespace AllSheng
15![]()
![]()
{
16
public class upload
17![]()
{
18![]()
变量变量#region 变量
19![]()
20
System.Web.HttpPostedFile postedFile;
21![]()
22
protected string localFileName;//原文件名(含扩展名)
23
protected string localFileExtension;//原扩展名
24
protected long localFileLength;//原文件大小
25
protected string localFilePath;//原文件路径
26![]()
27
protected string saveFileName;//保存的文件名(含扩展名)
28
protected string saveFileExtension;//保存的扩展名
29
//protected long saveFileLength;//保存的文件大小
30
protected string saveFilePath;//保存文件的服务器端的完整路径
31
protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径
32![]()
33![]()
34
private string path = null;
35
private string fileType = null;
36
private int sizes = 0;
37![]()
38
#endregion
39![]()
40![]()
upload():初始化变量upload():初始化变量#region upload():初始化变量
41![]()
/**//**//**//// <summary>
42
/// 初始化变量
43
/// </summary>
44
public upload()
45![]()
{
46
path = @"uploadimages"; //上传路径
47
fileType = "jpg|gif|bmp|jpeg|png|rar|doc";
48
sizes = 200; //传文件的大小,默认200KB
49
}
50
#endregion
51![]()
52![]()
设置传入的值:Path/Sizes/FileType设置传入的值:Path/Sizes/FileType#region 设置传入的值:Path/Sizes/FileType
53![]()
/**//**//**//// <summary>
54
/// 设置上传路径,如:uploadimages
55
/// </summary>
56
public string Path
57![]()
{
58
set
59![]()
{
60
path = @"" + value + @"";
61
}
62
}
63![]()
64![]()
/**//**//**//// <summary>
65
/// 设置上传文件大小,单位为KB
66
/// </summary>
67
public int Sizes
68![]()
{
69
set
70![]()
{
71
sizes = value;
72
}
73
}
74![]()
75![]()
/**//**//**//// <summary>
76
/// 设置上传文件的类型,如:jpg|gif|bmp
77
/// </summary>
78
public string FileType
79![]()
{
80
set
81![]()
{
82
fileType = value;
83
}
84
}
85
#endregion
86
87![]()
SaveAs()上传文件SaveAs()上传文件#region SaveAs()上传文件
88![]()
89
public string SaveAs(System.Web.HttpFileCollection files)
90![]()
{
91
string myReturn = "";
92
try
93![]()
{
94
for (int iFile = 0; iFile < files.Count; iFile++)
95![]()
{
96
postedFile = files[iFile];
97
//获得文件的上传的路径
98
localFilePath = postedFile.FileName;
99
//判断上传文件路径是否为空
100
if (localFilePath == null || localFilePath == "")
101![]()
{
102
//message("您没有上传数据呀,是不是搞错了呀!");
103
//break;
104![]()
105
continue;
106
}
107
else
108![]()
{
109![]()
判断文件大小判断文件大小#region 判断文件大小
110
//获得上传文件的大小
111
localFileLength = postedFile.ContentLength;
112
//判断上传文件大小
113
if (localFileLength >= sizes * 1024)
114![]()
{
115
message("上传的图片不能大于" + sizes + "KB");
116
break;
117
}
118
#endregion
119![]()
120![]()
文件夹文件夹#region 文件夹
121
//获取保存文件夹路径
122
saveFileFolderPath = getSaveFileFolderPath(path);
123
#endregion
124![]()
125![]()
文件名文件名#region 文件名
126
//获得原文件名(含扩展名)
127
localFileName = System.IO.Path.GetFileName(postedFile.FileName);
128
129
saveFileName = DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" + "ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"
130
#endregion
131![]()
132![]()
扩展名扩展名#region 扩展名
133
//获取原文件扩展名
134
localFileExtension = getFileExtension(localFileName);
135![]()
136
//如果为真允许上传,为假则不允许上传
137
if (localFileExtension == "")
138![]()
{
139
message("目前本系统支持的格式为:" + fileType);
140
}
141
//得到保存文件的扩展名,可根据需要更改扩展名
142
saveFileExtension = localFileExtension;
143
#endregion
144![]()
145
//得到保存文件的完整路径
146
saveFilePath = saveFileFolderPath + saveFileName + saveFileExtension;
147
postedFile.SaveAs(saveFilePath);
148![]()
myReturn = myReturn + ((myReturn == "" || myReturn == null) ? "" : "|") + path.TrimStart(new char[]
{ '\' }) + saveFileName + saveFileExtension;
149
//以下对文章的内容进行一些加工
150![]()
151
System.Web.HttpContext.Current.Response.Write("<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension + " "+" border=0 />'</SCRIPT>");
152
153
}
154
}
155
}
156
catch
157![]()
{
158
//异常
159
message("出现未知错误!");
160
myReturn = null;
161
}
162
return myReturn;
163
}
164
#endregion
165![]()
166![]()
getSaveFileFolderPath():获得保存的文件夹的物理路径getSaveFileFolderPath():获得保存的文件夹的物理路径#region getSaveFileFolderPath():获得保存的文件夹的物理路径
167![]()
/**//**//**//// <summary>
168
/// 获得保存的文件夹的物理路径
169
/// 返回保存的文件夹的物理路径,若为null则表示出错
170
/// </summary>
171
/// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>
172
/// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>
173
private string getSaveFileFolderPath(string format)
174![]()
{
175
string mySaveFolder = null;
176
try
177![]()
{
178
string folderPath = null;
179
//以当前时间创建文件夹,
180
//!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!
181
if (format.IndexOf("yyyy") > -1 || format.IndexOf("MM") > -1 || format.IndexOf("dd") > -1 || format.IndexOf("hh") > -1 || format.IndexOf("mm") > -1 || format.IndexOf("ss") > -1 || format.IndexOf("ff") > -1)
182![]()
{
183
//以通用标准时间创建文件夹的名字
184
folderPath = DateTime.UtcNow.ToString(format);
185
mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + @"" + folderPath + @"";
186
}
187
else
188![]()
{
189
mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + format;
190
}
191
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(mySaveFolder);
192
//判断文件夹否存在,不存在则创建
193
if (!dir.Exists)
194![]()
{
195
dir.Create();
196
}
197
}
198
catch
199![]()
{
200
message("获取保存路径出错");
201
}
202
return mySaveFolder;
203
}
204![]()
205
#endregion
206![]()
207![]()
getFileExtension():获取原文件的扩展名getFileExtension():获取原文件的扩展名#region getFileExtension():获取原文件的扩展名
208![]()
/**//**//**//// <summary>
209
/// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.
210
/// </summary>
211
/// <param name="myFileName">原文件名</param>
212
/// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>
213
private string getFileExtension(string myFileName)
214![]()
{
215
string myFileExtension = null;
216
//获得文件扩展名
217
myFileExtension = System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;
218
//分解允许上传文件的格式
219
if (myFileExtension != "")
220![]()
{myFileExtension = myFileExtension.ToLower();//转化为小写
221
}
222
string[] temp = fileType.Split('|');
223
//设置上传的文件是否是允许的格式
224
bool flag = false;
225
//判断上传的文件是否是允许的格式
226
foreach (string data in temp)
227![]()
{
228
if (("." + data) == myFileExtension)
229![]()
{
230
flag = true;
231
break;
232
}
233
}
234
if (!flag)
235![]()
{
236
myFileExtension = "";//不能设置成null,因为null表明文件无后缀名;
237
}
238
return myFileExtension;
239
}
240
#endregion
241![]()
242![]()
message():弹出消息框message():弹出消息框#region message():弹出消息框
243![]()
/**//**//**//// <summary>
244
/// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)
245
/// </summary>
246
/// <param name="msg">显示内容</param>
247
/// <param name="url">跳转路径</param>
248
private void message(string msg, string url)
249![]()
{
250
System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');window.location='" + url + "'</script>");
251
}
252![]()
253![]()
/**//**//**//// <summary>
254
/// 弹出消息框,显示内容(msg),无跳转
255
/// </summary>
256
/// <param name="msg">显示内容</param>
257
private void message(string msg)
258![]()
{
259
System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');</script>");
260
}
261
#endregion
262
}
263
}
using System;2
using System.Data;3
using System.Configuration;4
using System.Web;5
using System.Web.UI;6
using System.Web.UI.WebControls;7
using System.Web.UI.WebControls.WebParts;8
using System.Web.UI.HtmlControls;9

10

/**//**//**//// <summary>11
/// Cls_Upfile 的摘要说明12
/// </summary>13
///14
namespace AllSheng15


{16
public class upload17

{18

变量变量#region 变量19

20
System.Web.HttpPostedFile postedFile;21

22
protected string localFileName;//原文件名(含扩展名)23
protected string localFileExtension;//原扩展名24
protected long localFileLength;//原文件大小25
protected string localFilePath;//原文件路径26

27
protected string saveFileName;//保存的文件名(含扩展名)28
protected string saveFileExtension;//保存的扩展名29
//protected long saveFileLength;//保存的文件大小30
protected string saveFilePath;//保存文件的服务器端的完整路径31
protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径32

33

34
private string path = null;35
private string fileType = null;36
private int sizes = 0;37

38
#endregion39

40

upload():初始化变量upload():初始化变量#region upload():初始化变量41

/**//**//**//// <summary>42
/// 初始化变量43
/// </summary>44
public upload()45

{46
path = @"uploadimages"; //上传路径47
fileType = "jpg|gif|bmp|jpeg|png|rar|doc";48
sizes = 200; //传文件的大小,默认200KB49
}50
#endregion51

52

设置传入的值:Path/Sizes/FileType设置传入的值:Path/Sizes/FileType#region 设置传入的值:Path/Sizes/FileType53

/**//**//**//// <summary>54
/// 设置上传路径,如:uploadimages55
/// </summary>56
public string Path57

{58
set59

{60
path = @"" + value + @"";61
}62
}63

64

/**//**//**//// <summary>65
/// 设置上传文件大小,单位为KB66
/// </summary>67
public int Sizes68

{69
set70

{71
sizes = value;72
}73
}74

75

/**//**//**//// <summary>76
/// 设置上传文件的类型,如:jpg|gif|bmp77
/// </summary>78
public string FileType79

{80
set81

{82
fileType = value;83
}84
}85
#endregion86
87

SaveAs()上传文件SaveAs()上传文件#region SaveAs()上传文件88

89
public string SaveAs(System.Web.HttpFileCollection files)90

{91
string myReturn = "";92
try93

{94
for (int iFile = 0; iFile < files.Count; iFile++)95

{96
postedFile = files[iFile];97
//获得文件的上传的路径98
localFilePath = postedFile.FileName;99
//判断上传文件路径是否为空100
if (localFilePath == null || localFilePath == "")101

{102
//message("您没有上传数据呀,是不是搞错了呀!");103
//break;104

105
continue;106
}107
else108

{109

判断文件大小判断文件大小#region 判断文件大小110
//获得上传文件的大小111
localFileLength = postedFile.ContentLength;112
//判断上传文件大小113
if (localFileLength >= sizes * 1024)114

{115
message("上传的图片不能大于" + sizes + "KB");116
break;117
}118
#endregion119

120

文件夹文件夹#region 文件夹121
//获取保存文件夹路径122
saveFileFolderPath = getSaveFileFolderPath(path);123
#endregion124

125

文件名文件名#region 文件名126
//获得原文件名(含扩展名)127
localFileName = System.IO.Path.GetFileName(postedFile.FileName);128
129
saveFileName = DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" + "ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"130
#endregion131

132

扩展名扩展名#region 扩展名133
//获取原文件扩展名134
localFileExtension = getFileExtension(localFileName);135

136
//如果为真允许上传,为假则不允许上传137
if (localFileExtension == "")138

{139
message("目前本系统支持的格式为:" + fileType);140
}141
//得到保存文件的扩展名,可根据需要更改扩展名142
saveFileExtension = localFileExtension;143
#endregion144

145
//得到保存文件的完整路径146
saveFilePath = saveFileFolderPath + saveFileName + saveFileExtension;147
postedFile.SaveAs(saveFilePath);148

myReturn = myReturn + ((myReturn == "" || myReturn == null) ? "" : "|") + path.TrimStart(new char[]
{ '\' }) + saveFileName + saveFileExtension;149
//以下对文章的内容进行一些加工150

151
System.Web.HttpContext.Current.Response.Write("<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension + " "+" border=0 />'</SCRIPT>");152
153
}154
}155
}156
catch157

{158
//异常159
message("出现未知错误!");160
myReturn = null;161
}162
return myReturn;163
}164
#endregion165

166

getSaveFileFolderPath():获得保存的文件夹的物理路径getSaveFileFolderPath():获得保存的文件夹的物理路径#region getSaveFileFolderPath():获得保存的文件夹的物理路径167

/**//**//**//// <summary>168
/// 获得保存的文件夹的物理路径169
/// 返回保存的文件夹的物理路径,若为null则表示出错170
/// </summary>171
/// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>172
/// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>173
private string getSaveFileFolderPath(string format)174

{175
string mySaveFolder = null;176
try177

{178
string folderPath = null;179
//以当前时间创建文件夹,180
//!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!181
if (format.IndexOf("yyyy") > -1 || format.IndexOf("MM") > -1 || format.IndexOf("dd") > -1 || format.IndexOf("hh") > -1 || format.IndexOf("mm") > -1 || format.IndexOf("ss") > -1 || format.IndexOf("ff") > -1)182

{183
//以通用标准时间创建文件夹的名字184
folderPath = DateTime.UtcNow.ToString(format);185
mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + @"" + folderPath + @"";186
}187
else188

{189
mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + format;190
}191
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(mySaveFolder);192
//判断文件夹否存在,不存在则创建193
if (!dir.Exists)194

{195
dir.Create();196
}197
}198
catch199

{200
message("获取保存路径出错");201
}202
return mySaveFolder;203
}204

205
#endregion206

207

getFileExtension():获取原文件的扩展名getFileExtension():获取原文件的扩展名#region getFileExtension():获取原文件的扩展名208

/**//**//**//// <summary>209
/// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.210
/// </summary>211
/// <param name="myFileName">原文件名</param>212
/// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>213
private string getFileExtension(string myFileName)214

{215
string myFileExtension = null;216
//获得文件扩展名217
myFileExtension = System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;218
//分解允许上传文件的格式219
if (myFileExtension != "")220

{myFileExtension = myFileExtension.ToLower();//转化为小写221
}222
string[] temp = fileType.Split('|');223
//设置上传的文件是否是允许的格式224
bool flag = false;225
//判断上传的文件是否是允许的格式226
foreach (string data in temp)227

{228
if (("." + data) == myFileExtension)229

{230
flag = true;231
break;232
}233
}234
if (!flag)235

{236
myFileExtension = "";//不能设置成null,因为null表明文件无后缀名;237
}238
return myFileExtension;239
}240
#endregion241

242

message():弹出消息框message():弹出消息框#region message():弹出消息框243

/**//**//**//// <summary>244
/// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)245
/// </summary>246
/// <param name="msg">显示内容</param>247
/// <param name="url">跳转路径</param>248
private void message(string msg, string url)249

{250
System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');window.location='" + url + "'</script>");251
}252

253

/**//**//**//// <summary>254
/// 弹出消息框,显示内容(msg),无跳转255
/// </summary>256
/// <param name="msg">显示内容</param>257
private void message(string msg)258

{259
System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');</script>");260
}261
#endregion262
}263
}
浙公网安备 33010602011771号