使用一个文件模拟多个文件上载

时间:2010-10-11 12:05:17

标签: java servlets httpclient

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

A.K。

1 个答案:

答案 0 :(得分:3)

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

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.
    }
}
相关问题