我正在尝试将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) {
}
答案 0 :(得分:1)
我们将this file upload example与commons-fileupload:1.2.2
一起使用,它按预期工作(尚未升级到1.3)。示例显示了如何获取每个上载文件的输入流。