Si verificano problemi con il caricamento di file HTTP con file superiori a 2 GB. Sia il server che il client sono a 64 bit, quindi non ci devono essere limitazioni di 2 GB dal punto di vista del sistema. Ho fatto la seguente:Caricamento file di grandi dimensioni Tomcat 6.0 (> 2 GB)
- In Apache LimitRequestBody = 0 (http://httpd.apache.org/docs/2.0/mod/core.html#LimitRequestBody)
- In Tomcat connettore maxPostSize = 0 (http://tomcat.apache.org/tomcat-5.5-doc/config/ajp.html)
Sto usando apache upload di file comuni. Ho anche provato a impostare la dimensione massima del file utilizzando il metodo ServerFileUpload setMaxFileSize.
Sono in grado di caricare file inferiori a 2 GB (ho provato con successo file 1.88GB). Per favore, dirigimi, cosa mi manca qui?
Per essere più specifici metodo ServletFileUpload.parseRequest ritorna 0 FileItems durante il caricamento di file di grandi dimensioni
Ecco il frammento di codice:
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());
}
}
Come si utilizza esattamente la libreria Apache? Mostraci il codice –
Dovresti testare il tuo server con uno strumento da riga di comando come "wget" per escludere qualsiasi problema del server: dimensione del file codificata come numero intero nello stack, limite del file system ... –
Quali sono i sintomi del tuo problema? Il trasferimento è bloccato o fermato? Qualche traccia dello stack del server? Che dire di attività "su filo" - guardarlo con wireshark. –