【发布时间】:2016-09-15 18:42:16
【问题描述】:
我正在尝试上传图片。如果图像很小,则可以轻松上传。但是,如果我尝试上传高质量的大壁纸,则需要很长时间。它显示上传 89% 并保持不变。我正在使用 Apache commons api 来上传文件,并使用 Inputstream 来阅读。这是我的代码示例:
ServletFileUpload upload = new ServletFileUpload();
response.setContentType("image/jpeg");
FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
FileItemStream item = iterator.next();
InputStream stream = item.openStream();
if (item.isFormField()) {
LOGGER.debug("Got a form field: " + item.getFieldName());
} else {
LOGGER.debug("Got an uploaded file: " + item.getFieldName() + ", name = " + item.getName());
byte[] buf = new byte[stream.available()];
ServletOutputStream outputstream = response.getOutputStream();
while ((stream.read(buf)) != -1) {
outputstream.write(buf, 0, buf.length);
}
outputstream.close();
stream.close();
}
}
有什么方法可以使用上面的代码更快地上传图片?有没有处理它的api?我很感激任何帮助。谢谢。
【问题讨论】:
标签: java apache web file-upload inputstream