springboot实现表单提交数据和上传文件或图片

需求:前端页面如下提交表单

二、添加配置信息

在配置文件application.properties中添加配置信息

#单个文件上传发大小
spring.servlet.multipart.max-file-size=10MB
#多个文件上传的共大小不得超过100M
spring.servlet.multipart.max-request-size=100MB

三、编写代码


@Slf4j
@RestController
@RequestMapping("/hello")
public class HelloController {
    @PostMapping("/upload")
    public String upload(@RequestParam("email") String email,
                         @RequestParam("username") String username,
                         @RequestPart("headerImg") MultipartFile headerImg,
                         @RequestPart("photos") MultipartFile[] photos
    ) {

        log.info("上传的信息:email={},username={},headerImg={},photos={}", email, username, headerImg.getSize(), photos.length);
        if (!headerImg.isEmpty()) {
            //保存文件到服务器
            String originalFilename = headerImg.getOriginalFilename();
            try {
                headerImg.transferTo(new File("D:\\spring_annation\\file\\" + originalFilename));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        if (photos.length > 0) {
            for (MultipartFile multipartFile : photos) {
                log.info(multipartFile.getOriginalFilename());
                try {
                    String originalFilename = multipartFile.getOriginalFilename();
                    multipartFile.transferTo(new File("D:\\spring_annation\\file\\" + originalFilename));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return "上传成功";
    }


}

 

四、使用postman发起post请求

 

 

另外,nginx也可能会限制上传文件的大小,详情可以看我另一篇博客https://blog.csdn.net/u014496893/article/details/113062254?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161555526116780271513509%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=161555526116780271513509&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-3-113062254.pc_v1_rank_blog_v1&utm_term=%E4%B8%8A%E4%BC%A0

 


版权声明:本文为u014496893原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。