2016-09-10 116 views
0

我需要使用html type='file'上傳一個客戶端到服務器的圖片,這很好,到目前爲止我可以從客戶端發送文件並接收到我的servlet,但現在我需要限制我的servlet中的圖像大小高達2MB,如果大於2MB,我需要向客戶端發送有關圖像大小的錯誤信息。如何在java servlet中限制上傳的文件大小

這裏我的servlet代碼,我收到發送圖像:

public void doPost(HttpServletRequest request, 
     HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 

    MultipartRequest multipartRequest = new MultipartRequest(request, "D:\\"); 
    out.print("Successfully Uploaded"); 
} 

到目前爲止,它的作用是接收圖像,並將其保存在D:目錄,我不想先保存圖像,然後檢查圖像大小,但要說MultipartRequest,如果你收到高於2MB的數據發送一個錯誤。

感謝提前:)

+0

檢查客戶端中的文件大小是否更合乎邏輯?您可以保存失敗的http請求 – svarog

+3

否,因爲客戶端腳本可能會更改,並且可能會使服務器容易受到攻擊 – darees

回答

0

創建MultipartRequest實例時,您可以限制上傳文件的大小。

  • MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory)

構造一個新的MultipartRequest處理指定的請求,保存任何文件上傳到指定目錄,並限制上傳大小爲1兆字節。

  • MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory, int maxPostSize)

構造一個新的MultipartRequest處理指定的請求,保存任何文件上傳到指定目錄,並限制上傳大小設置爲指定的長度。

相關問題