我已经使用 ByteArrayOutputStream 完成了上传,现在我想使用 nio 从 ServletInputStream 将图像写入硬盘中的文件,我尝试了几种方法,但到目前为止没有运气,现在我有了:
@Override
public void doPost(final HttpServletRequest request, final HttpServletResponse response)
throws IOException, ServletException {
final String fileName = "img_" + UUID.randomUUID().toString() + ".jpg";
final String filePathName = "E:\\tmp\\" + fileName;
final FileChannel outChannel = new FileOutputStream(filePathName).getChannel();
final ReadableByteChannel inChannel = Channels.newChannel(request.getInputStream());
outChannel.transferFrom(inChannel, 0, request.getContentLength());
inChannel.close();
outChannel.close();
}
生成的指定文件与原始文件大小相同,但无法打开。请问我在这里做错了什么?什么是正确的方法?
谢谢。