多文件上传(.net)

时间:2024-04-16 12:06:40

找了很长时间,终于找到了:

前台:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form runat="server" id="form1" method="post" enctype="multipart/form-data">
<input name="f" type="file" multiple="multiple" />
<input name="s" type="submit" />
</form>
</body>
</html>

一直不知道  type="file"  还有  multiple="multiple" 属性,加入这个属性后可以一次性多选文件。

后台:

System.Web.HttpFileCollection _file = System.Web.HttpContext.Current.Request.Files;
if (_file.Count > )
{
for (int i = ; i < _file.Count; i++ )
{
var fileS = _file[i];
//文件大小
long size = fileS.ContentLength;
//文件类型
string type = fileS.ContentType;
//文件名
string name = fileS.FileName;
//文件格式
string _tp = System.IO.Path.GetExtension(name); if (_tp.ToLower() == ".jpg" || _tp.ToLower() == ".jpeg" || _tp.ToLower() == ".gif" || _tp.ToLower() == ".png" || _tp.ToLower() == ".swf")
{
//获取文件流
System.IO.Stream stream = fileS.InputStream;
//保存文件
string saveName = DateTime.Now.ToString("yyyyMMddHHmmss")+"_"+i.ToString() + _tp;
string path = Server.MapPath("upload/images/" + saveName);
fileS.SaveAs(path);
}
}
}
调试时
string saveName = DateTime.Now.ToString("yyyyMMddHHmmss") + _tp;
发现选择多个图片后,总是保存一张图片,但是F10单步调试后有两个,感觉很奇怪,
最后才发现是因为处理的时间太短,文件名一样,系统当成一个文件保存了。果断在后面加i区别,成功。