gpt4 book ai didi

java - 从 POST 请求读取 MultipartContent

转载 作者:行者123 更新时间:2023-11-30 04:31:36 27 4
gpt4 key购买 nike

Possible Duplicate:
How to upload files to server using JSP/Servlet?

我正在实现一个与 resumable.js 一起使用的 fileupload servlet

每次我尝试读取文件时,我要么收到 NoSuchElement 异常,要么收到在我正在读取的文件中包含字符串的 NumberFormatException。我确信我在某个地方打嗝了,但似乎说不出来

这是我用来读取请求和写入文件的片段

if(ServletFileUpload.isMultipartContent(request)){
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(temp_dir));
ServletFileUpload upload = new ServletFileUpload(factory);

Iterator<FileItem> iter = upload.parseRequest(request).iterator();
FileItem item = iter.next();
OutputStream out;

try {

out = new FileOutputStream(new File(dest_dir));
IOUtils.copy(item.getInputStream(), out);
logger.debug("Wrote file " + resumableIdentifier + " with chunk number "
+ resumableChunkNumber + " to " + temp_dir);

} catch (FileNotFoundException fnfe) {

fnfe.printStackTrace();

}
}

我是否做错了什么,导致代码实际读取并解释文件的内容?

最佳答案

您必须迭代 FileItems。就在这一行之后:

Iterator<FileItem> iter = upload.parseRequest(request).iterator();

你应该有这样的东西:

File dir = new File(dest_dir);
if (!dir.isDirectory()) dir.mkdirs();
while(iter.hasNext()) {
FileItem item = iter.next();

另外,不要忘记关闭每个文件项的输出流。

out = new FileOutputStream(new File(dir, item.getName()));
IOUtils.copy(item.getInputStream(), out);
out.close();

关于java - 从 POST 请求读取 MultipartContent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14529493/

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