http://code.google.com/appengine/kb/java.html#fileformsで説明されているように、サーブレットでアップロードされたファイルを受信するために Apache Commons FileUpload を使用します。
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
FileItemStream item = iterator.next();
InputStream stream = item.openStream();
if (!item.isFormField()) {
System.out.println("Got an uploaded file: " + item.getFieldName()
+ ", name = " + item.getName() + " type = " + item.getContentType());
}
item.getContentType() が、リクエストのエンコーディングとは異なる可能性のあるテキスト ファイルのファイル エンコーディング (ISO-8859-1 など) も含むかどうか、または常にファイル タイプのみが含まれているかどうかはわかりません。私のテストでは、「text/plain」のみを受け取りましたが、クライアントから送信された「text/plain; Encoding=ISO-8859-1」を期待していました。
item.getContentType() にエンコーディングを含める必要があるという私の理解は正しいですか (クライアントから送信された場合)?