6

フィールドを持つhtmlフォームを持つJavaサーバー側アプリでApacheCommonsFileUploadを使用します。

  1. 宛先メールボックスの電子メールアドレスで埋められる宛先フィールド
  2. 送信者のメッセージを含むメッセージテキスト
  3. 写真をアップロードするための<inputtype=file...フィールド。アップロードされたファイルを(ストリームとして)受信できますが、どのように

このアプリはGAEにアップロードしたいです。アップロードされたファイルを(を使用して、ストリームとしてorg.apache.commons.fileupload.FileItemStream)受信できます。

入力テキストフィールド(つまり、1)と2))を受け取りたい-アプリのユーザーが入力)

を使用してこれらにアクセスしたいのですorg.apache.commons.fileupload.FileItem が、java.rmi.server.UID is a restricted class

4

2 に答える 2

10

Apache Commons FileUploadのFileItemIteratorを使用する必要があります。

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);
    }
}
于 2011-04-21T12:40:08.250 に答える
1

これを見てください: Google App Engine と FileUpload

GAE のファイルシステムに直接書き込むことはできませんが、データストアと memcache を使用してファイルシステムをエミュレートするGAEVFSを見てください。

于 2011-04-21T11:52:14.997 に答える