fos.close();
}
}
public Map<String, Object> getFileUploadStatus(String fieldName) {
WebContext ctx = WebContextFactory.get();
AjaxFileUploadListener.FileUploadStats fileUploadStats =
(AjaxFileUploadListener.FileUploadStats) ctx.getSession().getAttribute("FILE_UPLOAD_STATS_" + fieldName);
Map<String, Object> result = new HashMap<String, Object>();
if (fileUploadStats != null) {
if(fileUploadStats.getCurrentStatus().equalsIgnoreCase("error")){
result.put("error", "Sorry! We Could not process this uploaded file.");
return result;
}
long bytesProcessed = fileUploadStats.getBytesRead();
long sizeTotal = fileUploadStats.getTotalSize();
long percentComplete = (long) Math
.floor(((double) bytesProcessed / (double) sizeTotal) * 100.0);
long timeInSeconds = fileUploadStats.getElapsedTimeInSeconds();
double uploadRate = bytesProcessed / (timeInSeconds + 0.00001);
double estimatedRuntime = sizeTotal / (uploadRate + 0.00001);
result.put("bytesProcessed", bytesProcessed);
result.put("sizeTotal", sizeTotal);
result.put("percentComplete", percentComplete);
result.put("timeInSeconds", timeInSeconds);
result.put("uploadRate", uploadRate);
result.put("estimatedRuntime", estimatedRuntime);
result.put("error", null);
// dotcms 3022
ctx.getSession().setAttribute("SIZE_FILE_UPLOAD_STATS_" + fieldName, sizeTotal);
return result;
}
return null;
}