Tomcat 6.0 Загрузка больших файлов (> 2 ГБ)

У меня возникли проблемы с загрузкой файлов HTTP с файлами размером более 2 ГБ. И сервер, и клиент являются 64-битными, поэтому с точки зрения системы не должно быть ограничений в 2 ГБ. Я сделал следующее:

  1. В Apache LimitRequestBody = 0 ( http://httpd.apache.org/docs/2.0/mod/core.html#LimitRequestBody )
  2. В Tomcat Connector maxPostSize = 0 ( http://tomcat.apache.org/tomcat-5.5-doc/config/ajp.html )

Я использую загрузку файла общего доступа 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());
    }
}

5
задан checklist 12 September 2012 в 09:49
поделиться