3

사용자가 속성 목록을 추가 할 수있는 양식이 있습니다. 사용자가 입력해야하는 데이터 외에도 사용자는 다수의 이미지를 업로드 할 수 있습니다. 사용자가 한 번에 둘 이상의 파일을 업로드 할 수 있도록 HTML5 다중 속성을 사용하고 있습니다.여러 파일 업로드 - MVC .. 총 파일 크기 제한이 있습니까?

HttpPost Add 메서드는 하나의 이미지를 업로드 할 때 항상 발생합니다. 그러나 여러 이미지를 업로드하려고하면 메서드가 실행되지 않습니다. 지금까지는 오류가 발생하지 않았으므로 구현에 어떤 문제가 있는지 잘 모르겠습니다.

HTML

@using (Html.BeginForm("AddProperty", "User", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    <fieldset> 
     <legend>Property</legend> 

     <div class="editor-label"> 
      Title 
     </div> 
     <div class="editor-field"> 
      <input type="text" name="title" /> 
     </div> 

     <div class="editor-label"> 
      Description 
     </div> 
     <div class="editor-field"> 
      <input type="text" name="desc" /> 
     </div> 

     @* ... more input fields... *@ 

     <div class="editor-label"> 
      Images 
     </div> 
     <div class="editor-field"> 
      <input type="file" multiple="multiple" name="file" /> 
     </div> 

     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

컨트롤러는

[HttpPost] 
public ActionResult AddProperty(FormCollection form, IEnumerable<HttpPostedFileBase> file) 
{ 
    Property p = new Property(); 
    p.Title = form["title"]; 
    p.Description = form["desc"]; 

    // ... setting Property fields 

    new PropertiesBL().AddProperty(p); 

    for (int i = 0; i < file.Count(); i++) 
    { 
     // ... loop and save uploaded file(s) 
    } 
} 

어떤 도움을 주시면 감사하겠습니다.

편집 - 또한 테스트

내가 파일 업 로더를 포함하는 단지 형태로 새로운 뷰를 생성 한 파일 업로드를 테스트합니다. 다른 파일 형식을 업로드하려고했습니다. 내가 언급 한 것은 예를 들어 10 개의 문서를 업로드 할 때 Upload 메소드가 실행되었다는 것입니다. 그러나 3 개의 (큰) 이미지를 업로드하려고 할 때 그것은 발사되지 않았습니다. 업로드되는 총 바이트 수에 관해서는 어떤 종류의 제한이 있다고 생각하고 있습니다 ... 이것이 의미가 있는지 확실하지 않습니다.

간단한 테스트

<form method="post" action="/Test/Upload" enctype="multipart/form-data"> 
    <input type="file" multiple="multiple" name="images" /> 
    <input type="submit" value="Upload" /> 
</form> 

[HttpPost] 
public ActionResult Upload(IEnumerable<HttpPostedFileBase> images) 
{ 
    return RedirectToAction("Index"); 
} 

또한 개별적으로 여러 파일을 업로드 시도했습니다. 3 개의 큰 이미지 (각 이미지 약 2 MB)를 업로드하려고 시도 할 때 메서드가 실행되지 않았습니다. 나는 이것이 어떤 종류의 총 최대 파일 크기와 관련된 문제라는 것을 거의 확신합니다.

<form method="post" action="/Test/Upload" enctype="multipart/form-data"> 
    <input type="file" name="image_1" /> 
    <input type="file" name="image_2" /> 
    <input type="file" name="image_3" /> 
    <input type="submit" value="Upload" /> 
</form> 

답변

1

문제는 업로드 할 수있는 최대 바이트 수입니다. web.config 파일에 maxRequestLength을 설정하여 변경할 수 있습니다.

참조

How to upload large files using MVC 4?

코드 :

<system.web> 

    <httpRuntime targetFramework="4.5" 
     maxRequestLength="2147483647" 
     executionTimeout="1600" 
     requestLengthDiskThreshold="2147483647" /> 
    .... 

</system.web> 

링크 된 질문에 대한 대답은,하여 <system.web> 태그 아래에 다음 그러나 나는 단지 <system.webServer>에 추가 할 수를 나열 태그 :

<system.webServer> 

    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="2147483647" /> 
     </requestFiltering> 
    </security> 
    .... 

</system.webServer>