2010-02-04 5 views
8

누구나 Passenger/mod_rails를 사용하여 Rails 애플리케이션을 실행할 때 파일 업로드 크기를 제한하는 좋은 해결책을 알고 있습니까? 요청이 즉시 거부되어 파일이 서버로 전송되지 않습니다.레일 파일 업로드 크기 제한

지금까지 발견 한 모든 해결책은 Mongrel에 제한을 적용하는 방법을 설명하지만이 애플리케이션과 함께 승객을 사용해야합니다.

답변

9

당신은 LimitRequestBody 지시어를 사용하여 아파치를 통해 업로드 크기를 모자 수

<Directory "/var/www"> 
    LimitRequestBody 1024 
</Directory> 

http://httpd.apache.org/docs/1.3/mod/core.html#limitrequestbody

+0

해야 1MB의의 최대 한계를 설정 싶다면

$('#id_of_input_file_field').change(function() { if(this.files[0].size > MAX_LIMIT_FOR_FILE){ $('#id_of_input_file_field').val(''); alert('File exceeds maximum size limit ') } }); 

MAX_LIMIT_FOR_FILE 바이트입니다. 문제는 아파치가 연결을 종료하고 그 때문에 오류 페이지를 표시 할 수 없다는 것입니다. – Mato

+0

예, 이것은 서버 측 유효성 검사이며 보안 목적으로 사용됩니다. 클라이언트 측에서 스크립트를 사용하여 악의적이지 않은 사용자에게 즉시 알림을 보내야합니다. 'dropzone'과 같은 플러그인을 사용한다면'maxFilesize'를 설정하는 것만 큼 쉽습니다. – zehelvion

8

다음 자바 스크립트를 사용하여 선택한 파일이 최대 한도를 초과 함을 사용자에게 알립니다. 그러나 여전히 서버 측 유효성 검사가 필수적입니다. 당신이 다음 MAX_LIMIT_FOR_FILE의 값이 가능한 솔루션입니다 1048576