大家好,我有一个使用Jakarta HttpClient的示例代码,它将文件上传到Web服务器。 我想要的是模拟每个上传具有不同名称的同一文件的多文件上传。 这可能吗?任何提示?
A.K。
答案 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.
}
}