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

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化接口stockapi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值