后台controller同时接收MultipartFile和数据

首先理解两个注解:

  • @RequestBody 注解
    @RequestBody是用于解析body中的 json 内容。

  • @RequestParam 注解
    @RequestParam直接用于读取url请求中带的参数,或者使用表单提交的参数

  • 这一篇文档研究得比较细,可以去理解一下。

  1. 简单的参数传值时

    @PostMapping("/test")
    //@RequestParam注解可去掉,前端传值可以放在formData里也可放在url上
    public Result<User> test(MultipartFile file, @RequestParam String str) {
        System.out.println(str);
        System.out.println(file.getOriginalFilename());
        return null;
    }
    

    后台controller同时接收MultipartFile和数据_第1张图片后台controller同时接收MultipartFile和数据_第2张图片

  2. 多参数传值时

     @PostMapping("/test")
     //此处不加任何注解,前端传值可以放在formData里也可放在url上
     public Result<User> test(MultipartFile file, BaseUser user) {
         System.out.println(user.getUserName());
         System.out.println(file.getOriginalFilename());
         return null;
     }
    

    后台controller同时接收MultipartFile和数据_第3张图片
    后台controller同时接收MultipartFile和数据_第4张图片

  3. 多参数传值时

    @PostMapping("/test")
    //使用对象接收,不加注解。与2一样,只是多包了一层。
    public Result<User> test(BaseUserVo vo) {
       System.out.println(vo.getUser().getUserName());
       System.out.println(vo.getFile().getOriginalFilename());
       return null;
    }
    

    后台controller同时接收MultipartFile和数据_第5张图片
    后台controller同时接收MultipartFile和数据_第6张图片
    后台controller同时接收MultipartFile和数据_第7张图片

你可能感兴趣的:(spring,springboot,java,开发语言,后端)