使用Postman对@RequestPart和HttpServletRequest组合传参方式
方法代码如下:
/*** 发布*/@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()) {//上传文件数不能大于5if (fileList.size() > MAX_FILES) {log.error("上传文件数不能大于5");return AjaxResult.error("上传文件数不能大于5");}for (MultipartFile file : fileList) {//每个文件不能大于10Mif (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串就可以了。