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这个类,点进去

一目了然

java前后端传文件的坑总结springboot_第1张图片

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

java前后端传文件的坑总结springboot_第2张图片

 

 

 

 

你可能感兴趣的:(JAVA,html,java)