springmvc接受对象参数和MultipartFile参数的问题

1:如果单独的只有实体对象,对象里面没有MultipartFile属性

1-1:DTO对象

@Slf4j
@Data
public class PaperFileDTO {
    private String paperFileName;
    private Integer auditTypeId;
    private String studyType;
    private Integer studyTypeId;
    private Integer paperDuration;
    private String joinNumber;
    private String paperAttention;
    private String[] paperTime;
}

1-2:第一种方法:springMVC接受参数@RequestBody

@PostMapping(value = "/upload/document")
public Result<String> uploadFile( @RequestBody PaperFileDTO paperFileDTO) {
        MultipartFile file=null;
        String result = sysStudyPaperFileService.uploadFile(paperFileDTO,file);
        return Result.OK(result);
    }

1-3:第二种方法:springMVC接受参数

@PostMapping(value = "/upload/document")
public Result<String> uploadFile( PaperFileDTO paperFileDTO) {
        MultipartFile file=null;
        String result = sysStudyPaperFileService.uploadFile(paperFileDTO,file);
        return Result.OK(result);
    }

2:第一种接受方法:前端传送过来有对象和MultipartFile

2-1:DTO对象

@Slf4j
@Data
public class PaperFileDTO {
    private String paperFileName;
    private Integer auditTypeId;
    private String studyType;
    private Integer studyTypeId;
    private Integer paperDuration;
    private String joinNumber;
    private String paperAttention;
    private String[] paperTime;
    private MultipartFile file;
}

2-2:MultipartFile 封装在对象里,就不能使用@RequestBody接受springMVC参数,只能这样接收

public Result<String> uploadFile(PaperFileDTO paperFileDTO) {
        MultipartFile file=null;
        String result = sysStudyPaperFileService.uploadFile(paperFileDTO,file);
        return Result.OK(result);
    }

3:第二种接受方法:前端传送过来有对象和MultipartFile

2-1:DTO对象

@Slf4j
@Data
public class PaperFileDTO {
    private String paperFileName;
    private Integer auditTypeId;
    private String studyType;
    private Integer studyTypeId;
    private Integer paperDuration;
    private String joinNumber;
    private String paperAttention;
    private String[] paperTime;
}

2-2:MultipartFile 不封装在对象里,这样接收

public Result<String> uploadFile(  PaperFileDTO paperFileDTO,@RequestBody MultipartFile file) {
        String result = sysStudyPaperFileService.uploadFile(paperFileDTO,file);
        return Result.OK(result);
    }

前端必须使用multipart 和form-data

3:接受MultipartFile接受参数必须和前端传参一致或者用@RequestParam(“file”)指定

public Result<String> uploadFile(  PaperFileDTO paperFileDTO,@RequestParam("file") MultipartFile multipartFile ) {
        String result = sysStudyPaperFileService.uploadFile(paperFileDTO,multipartFile );
        return Result.OK(result);
    }

4:多文件上传用MultipartFile[] 接受

public Result<String> uploadFile( @RequestBody MultipartFile[] multipartFile ) {
		for (int i = 0; i < multipartFile.length ; i++) {
            sysStudyPaperFileService.uploadFile(multipartFile[i] );
        }
        
        return Result.OK("上传完成");
    }

5:不可以这样传参,只能会有一个传参成功paperFile或者file:

@Data
public class PaperFileDTO {
    private PaperFile paperFile;
    private MultipartFile file;
}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值