gpt4 book ai didi

java - 在一个请求中多次上传到 servlet

转载 作者:行者123 更新时间:2023-12-02 04:07:58 25 4
gpt4 key购买 nike

在 Servlet 3.1 中,可以在一个请求中将多个文件上传到 servlet(如批量上传),但我想要实现的是在每个文件创建后立即将大量文件上传到 servlet,而不需要创建对每个文件的新请求。换句话说,在运行时创建了 1000 个文件,我不希望第一个文件等待最后一个文件创建后上传。我希望每个文件在创建后立即上传,以便 servlet 可以检查每个文件的上传时间戳(并发回结果)。对我来说最困难的部分是,我既不想等待创建所有文件,也不想对每个文件使用单独的请求。

这可能吗?如果是,请给我一些提示和方向/来源。

最佳答案

是的,可以在单个 servlet 请求中读取多个文件。

以下是读取 servlet 中的文件的方法:

@WebServlet(urlPatterns = { "/UploadServlet" })
@MultipartConfig(location = "/uploads")
public class UploadServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

PrintWriter out = response.getWriter();

for (Part part : request.getParts()) {
String fileName = part.getSubmittedFileName();
out.println("... writing " + fileName");
part.write(fileName);
out.println("... uploaded to: /uploads/" + fileName);
}

}
}

更新:根据您更新的问题,您有大约 1000 个文件要在创建时“流式传输”到服务器。不可能向现有的 POST 请求添加更多部分,而且我认为尝试在单个 POST 请求中上传所有 1000 个文件有点过多。

我建议设置一些任意 block 大小(例如一次 20 个文件)并将它们批量化并为每 20 个文件发出一个 POST 请求。这样,您就不必等待创建所有 1000 个文件,也不必通过单个 POST 请求执行所有操作。这将允许您以 20 个文件增量将文件“流”到服务器。

关于java - 在一个请求中多次上传到 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077896/

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