У меня возникли проблемы с загрузкой файлов HTTP с файлами размером более 2 ГБ. И сервер, и клиент являются 64-битными, поэтому с точки зрения системы не должно быть ограничений в 2 ГБ. Я сделал следующее:
Я использую загрузку файла общего доступа Apache. Я также попытался установить максимальный размер файла с помощью метода ServerFileUpload setMaxFileSize.
Я могу загружать файлы размером менее 2 ГБ (я успешно попробовал файл размером 1,88 ГБ). Пожалуйста, сообщите мне, что мне здесь не хватает?
Чтобы быть более конкретным, метод ServletFileUpload.parseRequest возвращает 0 FileItems при загрузке больших файлов
Вот фрагмент кода:
if (isMultipartForm()) {
try {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(SIZE_THRESHOLD);//SIZE_THRESHOLD = 4MB
ServletFileUpload upload = new ServletFileUpload(factory);
//upload.setFileSizeMax(3000000000L); Tried this too
upload.setProgressListener(progressListener);
items = upload.parseRequest(request);
if(items != null && items.size() == 0)
return new CommandResultSet(false, "NoItemsFoundInRequest");
return new CommandResultSet(true, "" + ( (items!=null) ? items.size() : ""));
} catch(FileUploadException e) {
e.printStackTrace();
System.out.println("Exception in MultipartFormManager. Can not parse request.");
return new CommandResultSet(false, e.getMessage());
}
}