我使用 Apache Commons FileUpload 在 Servlet 中接收上传的文件,如http://code.google.com/appengine/kb/java.html#fileforms中所述
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() 应该包含编码(如果它是从客户端发送的)?