Swagger2数组参数的问题

原创
2018/10/31 15:03
阅读数 2.2W

使用swagger2调试接口时,发现参数是数组时,会有问题。

没有问题的情况,如下:

@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();
}

后台无法收,并报错:

而在页面上直接使用form表单直接上传时,却是可以的,代码如下:

<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的单对象传递时,没有问题; 对比单文件与多文件时,发现浏览器中请求

单文件:

多文件:

在多文件传给后台时,后台无法识别。

是不是这个类型导致后台无法识别,如果是的话,那这是不是swagger2中的一个bug呢?

展开阅读全文
打赏
0
0 收藏
分享
加载中
遇到一样的问题
2019/12/27 09:58
回复
举报
更多评论
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部