直接从流上传的Appengine进程文件(JAVA)

时间:2014-08-08 06:45:40

标签: java google-app-engine file-upload

我正在尝试将Java Web应用程序转换为使用GAE。

整个应用程序包括在表单中选择一个或多个本地(xml)文件并点击提交。在接收端,xml中的元素被排序并分别输出到textarea(每个输入文件一个)。

解析XML后,我不关心文件的内容。

Apache Commons File Upload使用临时位置上传文件,但这在GAE中不可用。

如何直接为每个上传的文件获取InputStream

更新

这是最终的代码示例,因此您不必按照接受的答案中的链接

ServletFileUpload upload = new ServletFileUpload ();
try {
    FileItemIterator uploads = upload.getItemIterator (request);

    while (uploads.hasNext ()) {
        FileItemStream item = uploads.next ();

        if (item.isFormField ()) {
            continue;
        }

        final String filename = item.getName ();

        w.println ("<textarea class='xmlout' readonly='true' cols='150' rows='100' >");

        try {
            doSomethingWith(item.openStream ());
            stream.close ();
        } catch (Exception e) {
            // uh oh!
        }

        w.println ("</textarea>");
    }
} catch (Exception e) {

}

1 个答案:

答案 0 :(得分:1)

我们将this file upload examplecommons-fileupload:1.2.2一起使用,它按预期工作(尚未升级到1.3)。示例显示了如何获取每个上载文件的输入流。