作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
我是一名优秀的程序员,十分优秀!