<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 版权协议,转载请附上原文出处链接和本声明。