【问题标题】:Simulate a multiple file upload with one file用一个文件模拟多文件上传
【发布时间】:2010-10-11 12:05:16
【问题描述】:

大家好,我有一个使用 Jakarta HttpClient 将文件上传到 Web 服务器的示例代码。 我想要的是为每个上传模拟具有不同名称的同一文件的多个文件上传。 这可能吗?有什么提示吗?

A.K.

【问题讨论】:

  • 需要更多细节。是什么阻止你现在这样做?
  • 好吧,我在多个线程中上传文件。我想要的是在每个线程中上传以测试相同的文件但文件名不同!

标签: java servlets httpclient


【解决方案1】:

只需添加具有相同文件内容但不同部分和文件名的不同多部分部分。使用InputStreamBody,您可以为每个部分指定不同的文件名。例如

MultipartEntity entity = new MultipartEntity();
entity.addPart("file1", new InputStreamBody(new FileInputStream(file), "name1.ext"));
entity.addPart("file2", new InputStreamBody(new FileInputStream(file), "name2.ext"));
entity.addPart("file3", new InputStreamBody(new FileInputStream(file), "name3.ext"));
// ...

在 Servlet 代码中,假设您使用的是 Commons FileUpload,您可以在 for 循环中借助 FileUpload API 对从请求中提取的多部分项进行迭代。

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
    if (item.isFormField()) {
        // Process regular field.
    } else {
        // Process uploaded file.
    }
}

【讨论】:

  • HttpClient 3.x中InputStreamBody怎么写?
  • 我看到你已经问过another question :)
  • 是的。你的回答是完全正确的,但是使用 HttpClient 3 我无法让它工作!
  • @system:呃,在上面的例子中?有 3 个部分。
猜你喜欢
  • 2012-12-26
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
相关资源
最近更新 更多