gpt4 book ai didi

jsp - 使用 ServletFileUpload 的 parseRequest 上传文件?

转载 作者:行者123 更新时间:2023-12-04 13:23:57 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to upload files to server using JSP/Servlet?

(14 个回答)


5年前关闭。




我上传了我浏览的文件 input type="file"在我的网络应用程序中。问题是我得到了 FileItem列表大小为 0 虽然我可以在下面看到所有上传的文件信息
request -> JakartaMutltiPartRequest -> 文件属性

这是读取文件的java代码

public InputStream parseRequestStreamWithApache(HttpServletRequest request)
throws FileUploadException, IOException {
InputStream is = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);
// here the item size is 0 ,i am not sure why i am not getting my file upload in browser with type="file"
// but If inspect request in debugger i can see my file realted info in request--->JakartaMutltiPartRequest----->files attribute
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();

if (!item.isFormField()) {
is = item.getInputStream();
}
}

return is;
}

编辑:

这是 JSP 部分:
<form NAME="form1" action="customer/customerManager!parseRequestStreamWithApache.action" ENCTYPE="multipart/form-data"   method="post" >
<TABLE >
<tr>
<th>Upload File</th>
<td>
<input name="fileUploadAttr" id="filePath" type="file" value="">
</td>
<td >
<Input type="submit" value ="uploadFile"/>
</td>
</tr>
</TABLE>
</form>

最佳答案

正如我在对同一问题的评论中所说的,您之前发布过,这很可能是因为您之前已经解析了请求。
这些文件是请求正文的一部分,您只能解析一次。

更新:

我通常以这种方式使用 commons-upload:

if (ServletFileUpload.isMultipartContent(request)) {
ServletFileUpload fileUpload = new ServletFileUpload();
FileItemIterator items = fileUpload.getItemIterator(request);
// iterate items
while (items.hasNext()) {
FileItemStream item = items.next();
if (!item.isFormField()) {
is = item.openStream();
}
}
}

关于jsp - 使用 ServletFileUpload 的 parseRequest 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com