@RequestParam, @RequestParam ,@RequestPart的区别
@RequestParam注解是springMVC对从前端获取参数的封装
前端:
<formaction="http://localhost:8080/api/assetfile2" method="post"enctype="multipart/form-data">
Selecta file : <input type="file" name="file1"size="50" />
<inputtype="submit" value="Upload It" />
</form>
后台:
@RequestParam(value=""file1"",required=true) MultipartFile file,
required=true表示value=file1必须与前端里参数name=“file1”保持一致,如果不一样,会报错
required=false表示不要求保持一致.
@Multipart的作用是文件上传时定义multipart的格式
@Multipart(value=“assetfile”,type=“text/plain”)
type="text/plain"表示上传文件是txt类型
@RequestPart注解与@Multipart作用类似,但是使用它容易报null错误,不建议使用
Springboot中用@RequestPart获取上传文件参数
@PostMapping("/upload")
public void upload(@RequestPart("file") MultipartFile file , @RequestPart("files") MultipartFile[] files) throws IOException {
//读取单个文件
if(!file.isEmpty())
{
String filename = file.getOriginalFilename();
file.transferTo(new File("D:\\"));
}
//读取多个文件
if(files.length > 0)
{
for(MultipartFile afile : files)
{
if(!afile.isEmpty())
{
String filename = afile.getOriginalFilename();
afile.transferTo(new File("D:\\"));
}
}
}
}
springboot使用带@RequestPart注解传参文件和json或dto,附带postman请求调用方法
https://blog.csdn.net/Koikoi12/article/details/121403140?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121403140-blog-119546662.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121403140-blog-119546662.pc_relevant_paycolumn_v3&utm_relevant_index=2
dto
import com.aliyun.dysmsapi20170525.models.AddSmsSignRequest;
import lombok.Data;
import java.util.List;
/**
* @author: liziqiang
* @description: ReqSendCodeDto
* @date: 2021/6/23 7:12 下午
*/
@Data
public class AliSmsSignDto {
private Integer signSource;
private String signName;
private String remark;
private List<AddSmsSignRequest.AddSmsSignRequestSignFileList> signFileList;
}
controller
@PostMapping("/add")
@ApiOperation(value = "阿里短信签名新增", notes = "阿里短信签名新增")
public CustomRestResult<String> addSmsSign(@RequestPart("json") AliSmsSignDto aliSmsSignDto,
@RequestPart("file") MultipartFile file){
aliSmsSignService.addSmsSign(aliSmsSignDto,file);
return CustomRestResult.success("新增成功");
}
postman传参方式
注意json一定要改成file格式传
图片后期补上