在 GAE 上使用 apache 文件上传 [英] using apache fileupload on GAE
问题描述
我在 Java 服务器端应用程序中使用 Apache Commons FileUpload带有字段的 html 表单:
I use Apache Commons FileUpload in a java server-side app that has a html form with fields :
- 将填写目标邮箱的电子邮件地址的目标字段
- 带有发件人消息的消息文本
- A
我想在 GAE 上上传这个应用程序.我可以接收上传的文件(作为流,使用 org.apache.commons.fileupload.FileItemStream
).
This app I want to upload on GAE .
I can receive uploaded file (as a stream , using org.apache.commons.fileupload.FileItemStream
).
我也想收到输入文本字段(即 1) 和 2)) - 由应用程序用户完成)
I want to receive too input textfields (i.e. 1) and 2)) - completed by the user of app)
我想使用 org.apache.commons.fileupload.FileItem
访问这些,但我收到 java.rmi.server.UID 是一个受限类
I want to access these using org.apache.commons.fileupload.FileItem
but I receive java.rmi.server.UID is a restricted class
推荐答案
您应该使用 Apache Commons FileUpload 的 html" rel="noreferrer">FileItemIterator.
You should use the FileItemIterator of the Apache Commons FileUpload.
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import java.io.InputStream;
..
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
ServletFileUpload upload = new ServletFileUpload();
res.setContentType("text/plain");
FileItemIterator iterator = upload.getItemIterator(req);
while (iterator.hasNext()) {
FileItemStream item = iterator.next();
String name = item.getFieldName();
InputStream stream = item.openStream();
if (item.isFormField()) {
//regular form field
resp.getWriter().println(("Form:" + name + " : " + Streams.asString(stream));
} else {
//fileform field
resp.getWriter().println(("File:" +name + " : " + item.getName());
}
}
} catch (Exception ex) {
throw new ServletException(ex);
}
}
这篇关于在 GAE 上使用 apache 文件上传的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!