在GAE上使用apache文件上传 [英] using apache fileupload on GAE

查看:133
本文介绍了在GAE上使用apache文件上传的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个java服务器端应用程序中使用 Apache Commons FileUpload ,它有一个HTML格式的字段:


  1. 目的地邮箱将填充目标邮箱的电子邮件地址
  2. 包含发件人邮件的邮件文本

  3. A<输入类型=文件...字段上传照片。我可以接收上传的文件(作为流),但是如何

这个应用程序我想上传GAE。
我可以接收上传的文件(作为流,使用 org.apache.commons.fileupload.FileItemStream )。


我想接收太多的输入文本字段(即1)和2)) - 由应用程序的用户完成)

我想使用 org.apache.commons.fileupload.FileItem 来访问这些文件,但是我收到 java.rmi.server.UID是一个限制class

解决方案

您应该使用 FileItemIterator Apache Commons FileUpload
$ b

  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()){
//常规表单域
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);
}
}


I use Apache Commons FileUpload in a java server-side app that has a html form with fields :

  1. A destination fied that will be filled with email address of the destination mailbox
  2. A message text with a message of the sender
  3. A < input type=file ... field for uploading a photo. I can receive uploaded file (as a stream) but how

This app I want to upload on GAE . I can receive uploaded file (as a stream , using org.apache.commons.fileupload.FileItemStream).

I want to receive too input textfields (i.e. 1) and 2)) - completed by the user of app)

I want to access these using org.apache.commons.fileupload.FileItem but I receive java.rmi.server.UID is a restricted class

解决方案

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆