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