2012-05-23 110 views
0

我已经通过MVC,jQuery,Ajax创建了文件上传器。但它仅适用于1到3千字节的文件,并且不适用于较大文件大小的文件( )。如何上传大容量文件?通过MVC,jQuery,Ajax上传文件

HTML:

<input type="file" name="bfile" size="50" id="bfile"/> 
    <input type="butt 

AppAttachmentsController控制器代码:

public string file_upload(string file_name, string file_binary) 
     { 

      byte[] byteArray = System.Text.Encoding.ASCII.GetBytes(file_binary); 
      MemoryStream stream = new MemoryStream(byteArray); 
      string path=Server.MapPath(Url.Content("~/upload/file"))+"\\"+file_name; 
      using (var fileStream = new FileStream(path, FileMode.Create)) 
       stream.CopyTo(fileStream); 

      return "1"; 
     } 

jQuery的,Ajax的

function AttachemtPost() { 
    var file_name = $("#bfile").val(); 
    var data = "file_name=" + file_name; 
    var file = document.getElementById('bfile').files[0]; 
    var file_binary = file.getAsBinary(); 
    var file_size = file.fileSize; 
    var file_text = file.getAsText(""); 
    alert('file :' + file_binary); 
    alert('file size:' + file_size); 
    data = "file_name=" + file_name + "&file_binary=" + file_binary;  
    ajaxlocalcall2(null, "POST", '@Url.Content("~/AppAttachments/file_upload")', data, "", "", "html", "oncontactinfosave");  
} 

回答

0

你可以尝试增加在web.config中允许的最大请求大小默认为4MB:

<httpRuntime maxRequestLength="size in kbytes" /> 

此外,如果你的主机在IIS应用程序7+您应该设置request limit

<system.webServer> 
    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="size in bytes" /> 
     </requestFiltering> 
    </security> 
</system.webServer> 
+0

我试过这个,但超过4kb的文件没有上传。请帮助 – user1411843

+0

这真的很奇怪。你在'maxRequestLength'和'maxAllowedContentLength'属性中输入了什么数字? –