springboot上传图片文件

目的:前端通过input标签选择文件,并进行上传,后台接收该文件并进行相关处理

前端:

<form action="http://127.0.0.1:8090/facesearch" method="post" enctype="multipart/form-data">
    <input id="facepic" name="selectedpic" type="file" accept="image/*">
    <input type="submit" value="Submit">
</form>

后端:

@RequestMapping(value="/facesearch",method=RequestMethod.POST)
public String startFaceSearch(@RequestParam("selectedpic") MultipartFile file) throws Exception
{
    FileUtils.copyInputStreamToFile(file.getInputStream(),new File("d:\\temp\\file\\",file.getOriginalFilename()));
    String selectedPic="d:\\temp\\file\\"+file.getOriginalFilename();
    return selectedPic;
}

将前端通过form提交的文件保存到本地d:\\temp\\file\\目录下,名字命名为原文件名file.getOriginalFilename()

遇到问题:

1:The current request is not a multipart request

  • from中涉及到图片上传的就要用post提交方式。否则就会报这个错误。
  • 第一中:在jsp页面的<head></head>标签里面加上<meta http-equiv="Content-Type" content="multipart/form-data;         charset=utf-8" />,用ajax提交的时候如果没有在页面设置<meta http-equiv="Content-Type"                              content="multipart/form-data; charset=utf-8" />这个也会报这个错误。
  • 第二种:在from表单的属性设置里面加上enctype="multipart/form-data",上次我遇到问题就是通过这种方式解决

2 maximum upload size exceeded

SpringBoot做文件上传时出现了The field file exceeds its maximum permitted size of 1048576 bytes.错误,显示文件的大小超出了允许的范围。查看了官方文档,原来Spring Boot工程嵌入的tomcat限制了请求的文件大小,这一点在Spring Boot的官方文档中有说明,文档说明表示,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。要更改这个默认值需要在配置文件(如application.properties)中加入两个配置:

  • multipart.maxFileSize
  • multipart.maxRequestSize

Spring Boot 1.3.x或者之前

multipart.maxFileSize=100MB

multipart.maxRequestSize=1000MB

Spring Boot 1.4.x

spring.http.multipart.maxFileSize=100MB

spring.http.multipart.maxRequestSize=1000MB

  Spring Boot 2.0之后

spring.servlet.multipart.max-file-size=100MB

spring.servlet.multipart.max-request-size=1000MB

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值