AWSでファイルアップロード機能を開発しようとしています。
ポスト リクエストを処理するサーブレットを作成しました。フレームワークを以下に示します。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean isMulti = ServletFileUpload.isMultipartContent(request);
if (isMulti) {
ServletFileUpload upload = new ServletFileUpload();
try {
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
FileItemStream item = iter.next();
InputStream inputStream = item.openStream();
if (item.isFormField()) {
} else {
String fileName = item.getName();
if (fileName != null && fileName.length() > 0) {
//read stream of file uploaded
//store as a temporary file
//upload the file to s3
}
}
}
} catch (Exception e) {
}
}
response.sendRedirect("location of the result page");
}
ファイルをアップロードするには、これらのクラスを使用する必要があると思います。試してみましたが、S3 では、ファイルのサイズは常に 0 バイトです。複数のパーツを含むファイルをアップロードする他の方法はありますか?
- InitiateMultipartUploadRequest
- InitiateMultipartUploadResult
- UploadPartRequest
- CompleteMultipartUploadRequest
コードhttp://docs.aws.amazon.com/AmazonS3/latest/dev/llJavaUploadFile.htmlを参照します