WebForm 文件上传

//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))//<strong>选中文件的第一个文件的大小</strong>大于等于10M
            {
                alert("文件大小怒鞥超过10Mb");
                return false;//停止操作
            }
        }
    }
</script>

 

posted @ 2016-10-24 22:23  兔小灰385  阅读(270)  评论(0编辑  收藏  举报