2012-09-20 78 views
-1

我有一個文件上傳控制我希望該文件將附加只有當它下面的一些內存限制(8 Mb)。我使用Ajax獲取文件大小並在onchange事件中調用它。但我無法限制文件的附件。誰能幫我 ?Asp.net文件上傳控件

這是示例代碼

function a(obj) { 
    if ($(obj).val() != '') { 
     var request; 
     var flag = false; 
     request = $.ajax({ 
      type: "POST", 
      url: 'CheckFileSize.aspx', 
      data: "search=" + $(obj).val(), 
      success: function (size) { 
       if (parseFloat(size) < 8192) { 
        flag = true; 
       } 
       if (!flag) { 
        alert('File size is greater then 8 MB. The size of the file is ' + (parseFloat(size))/1024 + ' MB'); 

//做了限制,從上傳用戶在此處輸入代碼 $(OBJ).VAL(空)的東西; } return flag; } }); } return false; }

+0

你應該爲你的CheckFileSize.aspx提供代碼太 –

回答

1

在您處理上載的文件服務器端方法,添加以下代碼:

 if (myFileUploadControl.HasFile) 
     { 
       int maxSize = Convert.ToInt32(ConfigurationManager.AppSettings.Get("MaxImageSize"));  //MaxImageSize specified in web.config file to make it easy to change. 

       int imageSize = myFileUploadControl.PostedFile.ContentLength; 
       if (imageSize > maxSize) 
       { 
        string uploadImageError = "The selected file exceeds the maximum allowed size (" + maxSize/1000 + "k)"; // Message to display to user. 
       } 
       else 
       { 
// Code to process the file here. 
       } 
     } 

將以下內容添加到web.config文件的system.web部分也將防止接受過大的上載。

<!-- set max upload to 25 MB --> 
<httpRuntime executionTimeout="300" maxRequestLength="25000"/> 
+0

是的,這是解決方案之一,但我想,當用戶選擇的任何文件,然後用一些警報消息可以限制用戶上傳文件 – user1685652

0

您應該能夠清除輸入的值 - jQuery中它會看起來像

$('#fileInputId').val('')

+0

感謝您的解決方案,但是,這是不工作的我的代碼: – user1685652