我用HTML上传了几个文件。
<label for="app_snapshot_image_1">SNAPSHOT_1</label>
<input type="file" name="app_snapshot_image_1" id="app_snapshot_image_1" />
<label for="app_snapshot_image_2">SNAPSHOT_2</label>
<input type="file" name="app_snapshot_image_2" id="app_snapshot_image_2" />
<label for="app_snapshot_image_2">SNAPSHOT_3</label>
<input type="file" name="app_snapshot_image_3" id="app_snapshot_image_3" />
这是Spring控制器处理来自WEB的多部分请求。
@RequestMapping(value="/apps/addOrModify/", method=RequestMethod.POST)
public String testUpload(
@RequestParam(required=false) MultipartFile app_snapshot_image_1,
@RequestParam(required=false) MultipartFile app_snapshot_image_2,
@RequestParam(required=false) MultipartFile app_snapshot_image_3) {
...
}
但是,上述控制器只能处理从app_snapshot_image_1到3的3个文件;但这不是我想要的。我想使用Controller处理无限的文件。
希望你理解我的问题并抱歉我的小英语。
答案 0 :(得分:0)
您需要使用如下所示的一个字段创建模型类。
List<MultipartFile> files = LazyList.decorate(new ArrayList<MultipartFile>(),
FactoryUtils.instantiateFactory(MultipartFile.class));
带有吸气剂和二传手。现在,您需要在jsp中将此模型作为@ModelAttribute
传递给您有文件上载表单。
在JSP中,您需要为用户创建一个新输入,以便使用javascript上传新文件,并在输入标记的name属性中创建指定值,方括号中的files[some int value]
指定文件控制的计数用户在jsp中添加。
当您发布包含多个文件的表单时,您可以在控制器中使用相同的@ModelAttribute
字段来使列表中包含多个文件。
希望这会对你有所帮助。
干杯。