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",規范為:(.類型后綴,.類型后綴)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM