使用swagger2调试接口时,发现参数是数组时,会有问题。html
没有问题的状况,以下:api
@PostMapping("/list/str") public ReturnDTO testStr(@RequestParam String[] files){ return ReturnDTOUtil.success(); }
接收String类型的数组,页面上输入string类型数组,没有问题,后台能够接收处理。数组
可是上传的类型变为multipartfile的数组时,以下:浏览器
@PostMapping("/list/pictures") public ReturnDTO testPictures(@RequestParam("files") MultipartFile[] files, @RequestParam("pic_Name") String pic_Name){ for (int i = 0; i < files.length; i++) { String fileName = files[i].getOriginalFilename(); //图片名字 String fileStr = fileName.substring(fileName.lastIndexOf("\\")+1,fileName.length()); String filePath = "G:test/picture/"+fileStr; FileUtils.saveFileToDisk(files[i],filePath); } return ReturnDTOUtil.success(); }
后台没法收,并报错:app
而在页面上直接使用form表单直接上传时,倒是能够的,代码以下:post
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2>上传多个文件 实例</h2> <form action="/api/upload/list/pictures" method="post" enctype="multipart/form-data"> <p>选择文件:<input type="file" name="files"></p> <p>选择文件:<input type="file" name="files"></p> <p><input type="submit" value="提交"></p> </form> </body> </html>
而使用multipartfile的单对象传递时,没有问题; 对比单文件与多文件时,发现浏览器中请求ui
单文件:3d
多文件:调试
在多文件传给后台时,后台没法识别。orm
是否是这个类型致使后台没法识别,若是是的话,那这是否是swagger2中的一个bug呢?