<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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_45082840/article/details/123359559