<form action="/upload/multiFileUpload" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Multiple File Upload</legend>
Select File 1: <input name="files" type="file"/><br />
Select File 2: <input name="files" type="file"/><br />
Select File 3: <input name="files" type="file"/><br />
Select File 4: <input name="files" type="file"/><br />
Select File 5: <input name="files" type="file"/><br />
<input type="submit" value="Upload"/>
</fieldset>
</form>
下图前端展示
问题描述:如果按照顺序填充文件上传,不会有问题。
后台可以使用
for (MultipartFile file : files) {
if (file.isEmpty()) {
return;
}
// 执行相应的操作
}
进行判断操作
要是隔着上传1、3 、5进行文件上传,则后台再用改判断则会有异常,文件没有上传完就会跳出。
这时候可以使用
Stream<MultipartFile> multipartFileStream = Arrays.stream(files).filter((file) -> !file.isEmpty());
multipartFileStream.forEach(file ->{
//执行相应的操作
});
这个时候将返回的multipartFileStream在进行遍历操作就不会出现异常,会滤过没有上传的。
Arrays.stream(files).filter((file) -> !file.isEmpty())
filter()—>>> 返回值是boolean,将不符合条件的过滤掉。返回一个新的集合。
版权声明:本文为qq_45082840原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。