サーブレット出力ストリームをフラッシュしようとすると、apache commons fileupload が次の例外をスローする回避策を知っている人はいますか?
FileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
基本的に、apache commons fileupload を使用してアップロードされた各ファイルをループするコードがあり、各ファイルout.flush()
に関する統計を取得しようとしています。すなわち:
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
for(FileItem field : items) {
if (!field.isFormField() && field.getName().length()>0 && field.getName().getSize()>0) {
ArticleImport helper = new ArticleImport(new ArticleImportResponder(user,out));
// This helper object uses out.flush() to provide feedback to the user.
helper.process(field.getInputStream(), user);
}
}
}
この問題は Apache Tomcat 6.0.20 では発生しませんが、以前のバージョンでは発生します。