Tôi biết khó kiểm tra kích thước tệp ở phía máy khách (trình duyệt) chỉ bằng javascript thuần túy.Bắt lỗi kích thước tải lên tối đa của Spring MVC
Bây giờ, câu hỏi của tôi là, Có cách nào ở phía máy chủ để bắt ngoại lệ như thế này không?
org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size of 2000000 bytes
Điều gì xảy ra là nó không đạt được phương pháp đăng bài @controller của tôi và nó chỉ phát sinh ngoại lệ đang bị lỗi của tôi.jsp.
Điều tôi đang nghĩ là, có thể thực hiện điều này trong phương pháp chú thích mvc mùa xuân không?
@RequestMapping("/uploadFile.htm")
public String uploadAttachment(
HttpServletRequest request,
@RequestParam(required = false, value = "attached-file") MultipartFile file,
ModelMap model) throws Exception {
if(checkfilesize(file)){
//populate model
//add error if appplicable
//return same form again
}
//return success
}
}
Vấn đề của tôi là, nó không đạt đến điểm này và chỉ ném lên một ngoại lệ lớn.
Mặc dù error.jsp có thể bắt được nó, tôi sẽ nghĩ rằng nó thân thiện với người dùng nếu tôi có thể cảnh báo cho người dùng rằng tệp họ sắp tải lên vượt quá giới hạn.
Đây là ứng dụng Spring MVC 2.5 bằng cách này. Điều này có thể không?
cảm ơn .. Tôi đã thực hiện một số đọc về điều này và tôi đang sử dụng nó ngay bây giờ. Vấn đề của tôi là, làm thế nào tôi có thể hiển thị cùng một biểu mẫu một lần nữa được điền với cùng một mô hình và biểu mẫu: các đối tượng lỗi. Khi tôi chuyển tiếp sang cùng một biểu mẫu một lần nữa, không có dữ liệu nào được điền. –
@MarkEstrada Nếu kích thước của yêu cầu với tất cả các tham số, incl. tham số tệp, vượt quá 'maxUploadSize', các tham số yêu cầu sẽ không được phân tích cú pháp. Vì vậy, nó không tích hợp tốt với xác nhận. –