最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
net实现多文件上传代码
时间:2008-06-30 编辑:简简单单 来源:一聚教程网
net实现多文件上传代码,单个文件上传可能很容易作,但是很多朋友就是不是多文件上传,其它多文件上传和单文件没什么本质上的区别了,好我们先看看下面的文章就知道了.
protected bool upMorefile()
{
//遍历File表单元素
System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
//状态信息
System.Text.StringBuilder strMsg = new System.Text.StringBuilder("成功上传的文件信息分别为:
");
int fileCount;
int filecount = files.Count;
try
{
for (fileCount = 0; fileCount < files.Count; fileCount++)
{
//定义访问客户端上传文件的对象
System.Web.HttpPostedFile postedFile = files[fileCount];
string FileType = postedFile.ContentType.ToString();//获取要上传的文件类型,验证文件头
string fileName, fileExtension;
//取得上传得文件名
fileName = System.IO.Path.GetFileName(postedFile.FileName);
//取得文件的扩展名
fileExtension = System.IO.Path.GetExtension(fileName);
//在上传文件不为空的情况下,验证文件名以及大小是否符合,如果不符合则不允许上传
if (((FileType == "text/plain" && fileExtension.ToLower() == ".txt") || (FileType == "application/x-zip-compressed" && fileExtension.ToLower() == ".zip") || (FileType == "application/octet-stream" && fileExtension.ToLower() == ".rar"))&&postedFile.ContentLength/1024<=1024)
{//在这里通过检查文件头与文件名是否匹配 从而限制了文件上传类型 注:可上传的类型有TXT,ZIP,RAR,且大小只能为1M一下
if (fileName != String.Empty)
{
fileName = RandomFileName() + fileExtension;
//上传的文件信息
strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "
");
strMsg.Append("客户端文件地址:" + postedFile.FileName + "
");
strMsg.Append("上传文件的文件名:" + fileName + "
");
strMsg.Append("上传文件的大小为:" + postedFile.ContentLength + "字节
");
strMsg.Append("上传文件的扩展名:" + fileExtension + "
");
//保存到指定的文件夹
postedFile.SaveAs(Server.MapPath("public_file/" + UserName + "/") + fileName);
fileName = "";
}
}
else
{
strStatus.Text+= "第"+(fileCount+1)+"个文件不符合要求
";
}
}
strStatus.Text += strMsg.ToString();
return true;
}
catch (System.Exception error)
{
strStatus.Text = error.Message;
return false;
}
}
protected void Upload_Click(object sender, EventArgs e)
{
strStatus.Text = "";//讲提示信息清空
upMorefile();//调用上传类
}
public string RandomFileName()
{//返回随机数的类
string filename = "";
string r1 = "";
string r2 = "";
string r4 = "";
Random random = new Random();
r1 = ((char)random.Next(65, 90)).ToString();//大写字母
r2 = ((char)random.Next(97, 122)).ToString();//小写字母
r4 = random.Next(10000, 999999).ToString();
filename = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + r1 + r4 + r2 + r1 + r4 + r1;
return filename;
}
前台代码如下
允许上传的类型为:ZIP,RAR,TXT,大小为1M以下
并且一定要注意在form中添加一个enctype项,才可以使用。如下:
相关文章
- struts2实现多文件上传的示例代码 06-19
- struts2之单个与多个文件上传代码 03-22
- 一个多文件上传的例子(原创) 01-12
- 多文件上传组件 01-12
- 多文件上传的例子 01-11
- C#复制数组的两种方式及效率比较解读 10-24