WebForm上传文件FileUpload
Posted 王炜忠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebForm上传文件FileUpload相关的知识,希望对你有一定的参考价值。
//Button1的点击事件 //FileUpload1.FileName为所传文件的名字。 //以DateTime.Now.ToString("yyyyMMddhhmmssms")包括在文件名是为了防止重名,同一时间多人传同一文件的情况发生,造成服务器出错。 //文件名也可以包括所传者的唯一键 Request.Cookies["username"].values //获取相对路径//获取相对路径。
//upload为在该文件下新建的一个文件夹,跟Default平级
string path = "upload/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName; //获取绝对路径,用Server.MapPath()方法
string endpath = Server.MapPath(path);
//限制上传文件的大小。系统默认是4M。这是在C#位置设置限制,还有在JS设置的。
//FileUpload1.PostedFile.ContentLength为所传文件的大小。
//1mb=1024kb=(1024*1024)b
if (FileUpload1.PostedFile.ContentLength > ((1024 * 1024) * 10))
{
Label1.Text = "文件大小怒鞥超过10Mb";
return;/不执行后面语句
}
//把文件传到绝对路径下
FileUpload1.SaveAs(endpath);
注意:在C#端限制所传文件大小不好用。
原因:如果文件超过了系统最大长度,C#端是限制不住的,会直接将程序崩溃。
也可以在Web.confight里面设置所传文件的大小。
方法:在<system.web></system.web>里面加入 <httpRuntime maxRequestLength="70960"/>。
//在JS里面设置所传文件的大小 <script> document.getElementById("Button1").onclick = function () { var file = document.getElementById("FileUpload1"); if (file.value.length <= 0)//如果选中选中文件没有文件没有长度,就是没有选中文件 { alert("请选择所传文件"); return false;//停止操作 } else { if (file.files[0].size > ((1024 * 1024) * 10))//选中文件的第一个文件的大小大于等于10M { alert("文件大小怒鞥超过10Mb"); return false;//停止操作 } } } </script>
如何限制可以选择的文件类型:在FileUpload1里面的属性里添加accept=".jpg,.jpeg,.png",规范为:(.类型后缀,.类型后缀)。
以上是关于WebForm上传文件FileUpload的主要内容,如果未能解决你的问题,请参考以下文章