Java 如何恢复文件上载?
我正在JavaScript库中使用plupload。 如果在实现文件上载时出现故障,我希望恢复文件上载 我被告知要使用HTTP区块传输。 但我不知道,我怎么能用它 请显示以下服务器端代码Java 如何恢复文件上载?,java,spring,file-upload,plupload,chunks,Java,Spring,File Upload,Plupload,Chunks,我正在JavaScript库中使用plupload。 如果在实现文件上载时出现故障,我希望恢复文件上载 我被告知要使用HTTP区块传输。 但我不知道,我怎么能用它 请显示以下服务器端代码 private static final int BUFFER_SIZE = 100 * 1024; try { Integer chunk = 0, chunks = 0; if(null != request.getParameter("chunk") &am
private static final int BUFFER_SIZE = 100 * 1024;
try {
Integer chunk = 0, chunks = 0;
if(null != request.getParameter("chunk") && !request.getParameter("chunk").equals("")){
chunk = Integer.valueOf(request.getParameter("chunk"));
}
if(null != request.getParameter("chunks") && !request.getParameter("chunks").equals("")){
chunks = Integer.valueOf(request.getParameter("chunks"));
}
logger.info("chunk:[" + chunk + "] chunks:[" + chunks + "]");
...
appendFile(file.getInputStream(), destFile, response);
if (chunk == chunks - 1) {
logger.info("upload success !");
}else {
logger.info("left ["+(chunks-1-chunk)+"] chunks...");
}
} catch (IOException e) {
logger.error(e.getMessage());
}
}
public void appendFile(InputStream in, File destFile, HttpServletResponse response) {
OutputStream out = null;
try {
if (destFile.exists()) {
out = new BufferedOutputStream(new FileOutputStream(destFile, true), BUFFER_SIZE);
} else {
out = new BufferedOutputStream(new FileOutputStream(destFile),BUFFER_SIZE);
}
in = new BufferedInputStream(in, BUFFER_SIZE);
int len = 0;
byte[] buffer = new byte[BUFFER_SIZE];
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
} catch (Exception e) {
logger.error(e.getMessage());
}
finally {
try {
if (null != in) {
in.close();
}
if(null != out){
out.close();
}
} catch (IOException e) {
e.getMessage();
logger.error(e.getMessage());
}
}
}