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();
}
指定されたファイルはオリジナルと同じサイズで生成されますが、開くことができません。私はここで何を間違えましたか?適切な方法は何ですか?
ありがとう。