2016-06-22 5 views
0

ajaxとMVCを使用してファイルをアップロードしようとしていますが、このコードは小さなファイルでうまく動作しますが、サイズが大きく、ajaxとMVCを使用してメモリ例外をスローするファイル

$("#btn-upload-package").click(function (e) { 
    e.preventDefault(); 
    if ($("#frm-single-migrate").validationEngine("validate") == true) { 

    var fileUpload = $("#frm_file_upload").get(0); 
    var files = fileUpload.files; 

    var fileData = new FormData(); 
    fileData.append(files[0].name, files[0]); 
    fileData.append('SourceName', $('#txt_source_package').val()); 

    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("UploadSourceAndVerify", "Home")', 
     data: fileData, 
     async:true, 
     contentType: false, 
     processData: false, 
     cache: false, 
     success: function (data) { 
     if (data.IsError) { 
      ShowAlert('Error..!', data.Error); 
     } 
     else { 
      ShowAlert('Success', "File has been uploaded successfully"); 
     } 
     }, 
     error: function (data) { 
     alert("Please contact your administrator"); 
     } 
    }); 
    } 
}); 

MVCのコードは次のようであるメモリ不足の例外 私のjQueryコード:

public ActionResult UploadSourceAndVerify() 
    { 
     string SourcePackageName = Request.Form["SourceName"]; 
     HttpPostedFileBase file = Request.Files[0]; 
     string fname = Path.Combine(Server.MapPath("~/Uploads/"), file.FileName); 
     file.SaveAs(fname); 

     return Json(JsonViewModel); 
    } 

私はRequest.Filesは、[0]、それは例外

外のメモリを投げて取得しようとしています

私は、設定ファイルに適切なすべてのものを行っていると思いますが、私はどのような方法は、大きなファイルをアップロードすることがある教えてください

+0

ファイルのサイズはどれくらいですか? –

+0

@RoryMcCrossanそれは513MBですが、将来は2GBまでになる可能性があります –

+0

コードのスクリーンショットを貼ってはいけません。その実際のコードを質問に入れてください – Liam

答えて

2

あなたweb.configファイルを更新してみて、この

<configuration> 
    <system.web> 
     <!-- This will handle requests up to 1024MB (1GB) --> 
     <httpRuntime maxRequestLength="1048576" timeout="3600" /> 
    </system.web> 
</configuration> 

<!-- IIS Specific Targeting (noted by the system.webServer section) --> 
<system.webServer> 
    <security> 
     <requestFiltering> 
     <!-- This will handle requests up to 1024MB (1GB) --> 
     <requestLimits maxAllowedContentLength="1048576000" /> 
     </requestFiltering> 
    </security> 
</system.webServer> 

のように、最大​​許容されるファイルのサイズを大きくしかし、ターゲットサーバーは、その大きなファイルを処理するのに十分なリソースがなく、RAMが不足する可能性もあります。そうであれば、マシンが大きすぎて大容量のファイルを処理するには弱すぎるため、web.configは役に立ちません。多分RAMを増やす必要がありますか? :)

+0

まだ同じ問題に直面しています、私は私のマシンに4GBのRAMを持っています:(あなたの提案をありがとう、私に他の可能性を教えてください。 –

+0

ターゲットマシンがあなたが開発しているところでは、4GB以上のRAMはおそらく十分ではありません。開発用IDEは約1GBを消費し、OSそのものは同じかもしれませんし、さまざまなプログラム、Webブラウザなどがあります。タスクマネージャでアップロード後にメモリ消費量をチェックするか、IDEでプロファイリングを行う –

+0

ありがとうございます、私はチェックして、あなたが正しいと思いますが、マシンはほぼ80%のメモリを使用しており、アップグレードされたマシンで試してみます –

0

@David Votrubecによると、これはマシンの問題で、十分なメモリが不足していました。すべての人にお役立ていただきありがとうございます。

+0

喜んでお手伝いします: ) –

関連する問題