2012-05-30 2 views
24

jquery 기반 파일 업로드 플러그인 http://blueimp.github.com/jQuery-File-Upload/을 구현하고 있습니다. https://github.com/maxpavlov/jQuery-File-Upload.MVC3을 다운로드 할 수있는 샘플 MVC3 앱이 있습니다. 아래 양식의 선언을 사용하여 호출 AJAX의 핸들러 AS MVC 작업을 사용하려면 * @ MVC3 액션 파일 크기 제한

:

샘플의 저자는 홈 뷰에서 주석이 있습니다. ONE는 보안 SUCRIFICE AND LARGE 허용하지 않는 한이 큰 파일 쓸모 업로드 기능 캐스트 POST 요청 의 maxMessageLength을 제어 할 수있는 요청을 처리하는 MVC 컨트롤러를 사용할 때 이래로 사전에 알고 있지 않은 (하나는 주석) POST 메시지 크기는 사이트 와이드입니다.

IT는 MVC 프레임 워크는 PER 액션 BASIS * @

ON maxMessageLength을 설정하는 방법을 제공이 여전히 사건 때까지 올리기 요청을 처리 할 HTTP 처리기를 사용하는 것이 좋습니다?

나는 web.config에서 <httpRuntime maxRequestLength="x" />을 설정할 수 있음을 알았지 만, 이것이 나의 보안상의 취약점이라는 것을 이해합니다. 사건도 그렇습니까?

HttpHandler를 사용하는 대신 컨트롤러에서 업로드를 처리하는 것을 선호하지만 파일 크기에 의해 제한되고 싶지는 않으며 보안 취약점을 도입하지 않으려는 경우는 필요하지 않습니다.

업데이트

:이 게시물 File Upload ASP.NET MVC 3.0 기본 파일 크기 제한에 따라

는 4메가바이트입니다. 이 한도 인 http://msdn.microsoft.com/en-us/library/e1f13641.aspx을 확인하고 취약점을 이해했습니다.

4mb를 초과하는 컨트롤러 동작을 통해 파일을 업로드하는 유일한 방법입니까?

답변

48

당신은 location 요소를 사용하여 콘크리트 컨트롤러 액션에 대한 의 web.config에 업로드 크기 제한을 설정할 수 있습니다 :

은 컨트롤러 이름과 UploadFiles
<configuration> 
    <location path="Home/UploadFiles"> 
     <system.web> 
      <httpRuntime maxRequestLength="40960"/> 
     </system.web> 
    </location> 
</configuration> 

는 액션 이름입니다. 크기 제한은 40MB입니다.

여전히 파일 처리를 위해 Http Handler를 사용하는 것은 나에게 묻는 나쁜 해결책이 아닙니다.

+0

내가 찾고있는 것. 감사! – Rich

+2

"location"XML 노드는 ... "configuration"의 하위 노드 여야합니다? (web.config에 있음). 제발 당신을 지정할 수 있습니까? – sports

+1

@sports 예, 노드의 하위 항목입니다. 업데이트 된 답변을 확인하십시오. 귀하의 의견을 주셔서 감사합니다 :) – lucask