Swagger2数组参数的问题

探讨使用Swagger2调试接口时,上传MultipartFile数组遇到的问题。在特定情况下,后台无法正确接收并处理数组,但通过form表单上传则正常。疑似Swagger2处理多文件上传存在缺陷。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

后台无法收,并报错:

333c60928f0ee7ec311d696366b00928bf7.jpg

而在页面上直接使用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的单对象传递时,没有问题; 对比单文件与多文件时,发现浏览器中请求

单文件:

edceacdd7e067a67d1d6524a78d62ef4a49.jpg

多文件:

7135ae253f10913e0f2718340024246b61e.jpg

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

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

转载于:https://my.oschina.net/courtzjl/blog/2354063

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值