使用Postman对@RequestPart和HttpServletRequest组合传参方式
方法代码如下:
java
/**
* 发布
*/
@ApiOperation("发布")
@ApiImplicitParams({
@ApiImplicitParam(name = "req", value = "json格式", dataType = "Map", dataTypeClass = Map.class),
@ApiImplicitParam(name = "file", value = "文件", dataType = "File", dataTypeClass = File.class)
})
@PostMapping("/publish")
public AjaxResult publish(@Validated @RequestPart("req") BizDemandInfo entity, HttpServletRequest request) throws IOException {
List<MultipartFile> fileList = ((MultipartHttpServletRequest) request).getFiles("file");
// 限制上传文件大小,单位是字节
final long MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
// 限制上传文件的数量
final int MAX_FILES = 5;
List<BizDemandAttachment> attachmentList = new ArrayList<>();
if (!fileList.isEmpty()) {
//上传文件数不能大于5
if (fileList.size() > MAX_FILES) {
log.error("上传文件数不能大于5");
return AjaxResult.error("上传文件数不能大于5");
}
for (MultipartFile file : fileList) {
//每个文件不能大于10M
if (file.getSize() > MAX_FILE_SIZE) {
log.error("每个文件不能大于10M");
return AjaxResult.error("每个文件不能大于10M");
}
String url = FileUploadUtils.uploadMinio(Constants.MINIO_BUCKET_NAME_DEMAND, file);
String fileName = file.getOriginalFilename();
BizDemandAttachment attachment = new BizDemandAttachment();
attachment.setAttachmentName(fileName);
attachment.setAttachmentUrl(url);
attachmentList.add(attachment);
}
}
entity.setBizDemandAttachmentList(attachmentList);
String createBy = getUsername();
entity.setCreateBy(createBy);
String id = service.insert(entity);
return StringUtils.isNoneBlank(id) ? AjaxResult.success(id) : AjaxResult.error();
}
想使用postman对entity和request参数传参,应该怎么传呢?
传参方法:
直接上图片
因为参数entity是@RequestPart("req") BizDemandInfo entity,所以名称得填req。最重要的是Content-Type要填application/json
里面的内容直接填json串就可以了。