我在具有HTML表单和字段的Java服务器端应用程序中使用Apache Commons FileUpload:

  • 将用目标邮箱
  • 的电子邮件地址填充的目标文件
  • 带有发件人
  • 的消息的消息文本

  • 我想在GAE上上传此应用。
    我可以接收上传的文件(使用org.apache.commons.fileupload.FileItemStream作为流)。

    我也想接收输入的文本字段(即1)和2))-由应用的用户填写)

    我想使用org.apache.commons.fileupload.FileItem访问这些,但是我收到java.rmi.server.UID is a restricted class

    最佳答案

    您应该使用FileItemIteratorApache 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);
        }
    }
    

    关于java - 在GAE上使用apache fileupload,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5742684/

  • 10-12 21:07