java前后端传文件的坑总结springboot

这几天想完成个前端文件上传,后端接受然后上传到阿里云并存入数据库,来讲讲具体实现和遇到的坑


这第一个就是前后端传递问题,首先前端form表单里面需要有一个file标签(这个不会还有人不知道吧),后端接受要用MultipartFile这个类new出来的对象接受(可以再类里面封装传递)

运行:报错

后来改好了,坑就是下面两点

form表单一定要加

enctype="multipart/form-data"   和   method="post"

两个缺一不可,一定是post请求所以不加post还是会出错

然后上传了一个1m的视频发现一切正常,然而这样就好使了吗?太天真了,下面就是第二个坑


文件太大,大于最大的限制,其实这个解决简单,但是我深入底层看了一下,想看一下底层的往最下面看,不想看的请忽略

由于建的事springboot项目直接在配置文件加

#单次请求所有图片最大100Mb
spring.servlet.multipart.max-request-size=100MB
spring.servlet.multipart.max-file-size=100MB

成功解决


最后看一下底层:

错误如下:

可以看到意思就是当前文件95833843超过了自动配置的最大字节数10485760也就是10M

点进去spring.servlet.multipart.max-request-size这个类可以看到

设置最大大小的方法,我们再看看这个DataSize这个类,点进去

一目了然

上来先对参数拆分,所以我们写成100MB它可以识别并且匹配不同的方法设置不同大小

 

 

 

 

适用人群 Java开发人员,Vue开发人员,前后分离开发人员,权限管理和配置开发人员 课程概述 【讲师介绍】 讲师职称:               现某知名大型互联网公司资深架构师,技术总监,职业规划师,首席面试官,曾在某上市培训机构,高校任教多年。             Array(Array老师)10多年互联网公司实战经验,知名的大型互联网公司的架构师,高管等职,在企业长期从事于技术的源码阅读和新技术的研究;擅长于职业规划,面试辅导,从事面试官多年;擅长于JAVA,人工智能AI应用,Xmind等等,曾服役于国内某上市培训机构数年,独特的培训思路,培训体系,培训方式,实践的职场技能,职场现状,职场晋升等让你快速适应企业职场的所需。  【课程介绍】 技术选型 开发环境:Eclipse/Idea ,JDK 1.8以上  后技术 核心框架:SpringBoot2.x框架系列(同样适用Springcloud F版本以后的版本),如下(节选):     持久层框架:MyBatis 3.x + Mybatis-plus 3.x 日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 、fastjson、Gson 权限验证 前技术   Vue   Vue-cli ElementUI ---https://element.eleme.io/ JSX (JavaScript Xml) 前台的权限验证和路由设置 开发模式        前后分离的开发 数据库        Mysql5 IDE     Intellij Idea
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页