我正在尝试创建一个需要从用户提供的文件中读取一些数据的插件。
我在速度模板中尝试了一个普通的文件输入HTML元素并发布到一个动作Java类(我认为这有意义吗?)但似乎没有传递任何文件。
我正在使用Apache ServletFileUpload类以及其他一些应该可以满足我需要的其他类。我似乎按照我见过的教程做了一切,但它没有用。但是,当我删除enc-type但它仅用于非文件输入(例如文本,密码等)时它确实有效。
所以我得出结论,Jira正在引发这些问题。
以前做过类似事情的人还是知道是否有可能?
“接收”代码:
DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
FileItemIterator iterator = upload.getItemIterator(request);
List items = upload.parseRequest(request);
Iterator it = items.iterator();
while (it.hasNext()) {
FileItem item = (FileItem) it.next();
System.out.println("Got file");
}
你不能同时使用它们
FileItemIterator iterator = upload.getItemIterator(request);
和
List items = upload.parseRequest(request);
第一个是流API,第二个是基本API。两者都消耗内容。对于给定的请求,您必须选择一个API并仅使用该API。
结束时不使用HTML文件上传元素。相反,我使用了一个文本框,用户必须输入文件的公共路径,然后我使用标准的Java File类。