2012-08-08 174 views
3

我碰到這個問題就來了,而對於微軟Web的應用程序開發者準備考試,限制上傳文件,以便文件只小於1 MB,可以上傳

要實現一個網頁,允許用戶上傳文件到Web服務器。該頁面包含一個具有提交按鈕的 表單。 您想要限制上傳,以便只能上傳小於1 MB的文件。

給出的答案是:

添加ASP.NET FileUpload控件並將其配置爲在服務器上運行。 服務器端onclick處理程序添加到表單的提交按鈕,保存僅當文件大小 允許

文件,但不會這意味着該文件將已經被上傳到服務器?我們只是選擇是否保存它?它可以在客戶端完成嗎?

+1

你的意思是一這裏建議http://stackoverflow.com/questions/1601455/check-file-input-size-with-jquery – V4Vendetta 2012-08-08 08:23:49

回答

2

在進行文件上傳時,您可以檢查許多事項。在服務器端,也有最大的請求大小,這實際上會停止上傳。但是你是正確的,上傳將在這些檢查被捕獲時已經執行。

現在,您可以在受支持的瀏覽器上使用HTML5 File API進行文件上傳,包括在客戶端檢索它們的大小,甚至顯示預覽。在這裏看到的例子:Client Checking file size using HTML5?

+0

感謝您的答案,:) – 2012-08-08 08:27:46

1

使用IE:

<html> 
<head> 
<script> 
function getSize() 
{ 
    var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var filepath = document.upload.file.value; 
    var thefile = myFSO.getFile(filepath); 
    var size = thefile.size; 
    alert(size + " bytes"); 
} 
</script> 
</head> 
<body> 
<form name="upload"> 
<input type="file" name="file"> 
<input type="button" value="Size?" onClick="getSize();"> 
</form> 
</body> 
</html> 

使用Chrome或Firefox: 使用jQuery和實施的HTML5文件API規範,你可以使用這個簡單的代碼片段來訪問文件屬性,如大小:

//binds to onchange event of your input field 
$('#myFile').bind('change', function() { 
    alert(this.files[0].size); 
}); 

來源:關於這個專題這裏的優秀文章:http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html