2012-09-20 81 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