blog-comments
blog-comments copied to clipboard
使用Spring Boot上传文件 - 纯洁的微笑的博客
http://www.ityouknow.com/springboot/2018/01/12/spring-boot-upload-file.html
使用thymeleaf制作上传页面,Spring Boot接收文件并保持到本地。
挺好的,谢谢了
你为何如此优秀
多文件上传如何解决呢?
@zhouqingbiao 多文件上传如何解决呢?
可以前端控制,循环多次请求后台( 没试过 );或是接收参数用MultipartFile[]数组的方式(没试过);或是使用MultipartHttpServletRequest接收,其继承了MultipartRequest类,可以调用getFiles()方法来获得多个文件(没试过);我也是有根据的瞎说,你可以试试。。。
UPLOADED_FOLDER 请问path这个参数是什么意思呢
@guanzhiyou
@zhouqingbiao 多文件上传如何解决呢?
可以前端控制,循环多次请求后台( 没试过 );或是接收参数用MultipartFile[]数组的方式(没试过);或是使用MultipartHttpServletRequest接收,其继承了MultipartRequest类,可以调用getFiles()方法来获得多个文件(没试过);我也是有根据的瞎说,你可以试试。。。
后端这样 @PostMapping("/upload") public String singleFileUpload(@RequestParam("files") MultipartFile[] files, RedirectAttributes redirectAttributes) { }
前台
Spring Boot file upload example
我试过可以
@guanzhiyou
@zhouqingbiao 多文件上传如何解决呢?
可以前端控制,循环多次请求后台( 没试过 );或是接收参数用MultipartFile[]数组的方式(没试过);或是使用MultipartHttpServletRequest接收,其继承了MultipartRequest类,可以调用getFiles()方法来获得多个文件(没试过);我也是有根据的瞎说,你可以试试。。。
前台
@guanzhiyou
@zhouqingbiao 多文件上传如何解决呢?
可以前端控制,循环多次请求后台( 没试过 );或是接收参数用MultipartFile[]数组的方式(没试过);或是使用MultipartHttpServletRequest接收,其继承了MultipartRequest类,可以调用getFiles()方法来获得多个文件(没试过);我也是有根据的瞎说,你可以试试。。。
我靠 没写上
@guanzhiyou
@zhouqingbiao 多文件上传如何解决呢?
可以前端控制,循环多次请求后台( 没试过 );或是接收参数用MultipartFile[]数组的方式(没试过);或是使用MultipartHttpServletRequest接收,其继承了MultipartRequest类,可以调用getFiles()方法来获得多个文件(没试过);我也是有根据的瞎说,你可以试试。。。
我靠 还没写上 (input type="file" multiple name="file" )
按照博主的demo请求点击上传之后,文件上传成功,但是返回页面(重定向)出现错误,是怎么回事?控制台无报错,页面信息如下: Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Mar 09 17:42:13 CST 2018 There was an unexpected error (type=Not Found, status=404). No message available
启动类中如果报错:TomcatEmbeddedServletContainerFactory无法加载 是因为使用的Spring Boot2.0新版本,新版本已经把以上这个类更改为TomcatServletWebServerFactory 详情请查看:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide
springboot怎么限制上传文件的类型啊?
@guanzhiyou
@zhouqingbiao 多文件上传如何解决呢?
可以前端控制,循环多次请求后台( 没试过 );或是接收参数用MultipartFile[]数组的方式(没试过);或是使用MultipartHttpServletRequest接收,其继承了MultipartRequest类,可以调用getFiles()方法来获得多个文件(没试过);我也是有根据的瞎说,你可以试试。。。
可以参考我的方法: http://www.cnblogs.com/tibit/p/7819893.html。 multipart多文件上传,我觉得分三种,一种是一个file框选多个,还有就是一个框选一个,但有多个框,再或者是两种的组合。我的写法应该是能解决最复杂的上传组合,如果你的业务没这么麻烦,那么写法应该只会更简单。
总结的非常详细,给作者点个赞!
http://localhost:8080/uploadSign,这个接口有写过吗?
老铁,你代码能不能给正确的,上传文件,springboot重定向老是报404,求解啊

图片上传报错:400:Required request part 'file' is not present
上面解决tomcat因为文件过大连接重置的代码中,TomcatEmbeddedServletContainerFactory在springboot2.0中已经被替换为TomcatServletWebServerFactory。
大神牛逼
@bufflu 按照博主的demo请求点击上传之后,文件上传成功,但是返回页面(重定向)出现错误,是怎么回事?控制台无报错,页面信息如下: Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Mar 09 17:42:13 CST 2018 There was an unexpected error (type=Not Found, status=404). No message available
我也是这个问题 我觉得是重定向之后 再次发出一个请求 去访问templates里面的页面 但是templates里面的内容应该是不能直接通过url访问的 所以就404了 解决办法的话 我也不知道用redirectattributes解决 我直接把那个功能用model解决了
获益匪浅
使用MultiPartFile 的时候 报错 400: Unable to parse form content
按照博主的demo请求单击上传之后,文件上传成功,但是返回页面(重定向)出现错误,是怎么回事?控制台无报错,页面信息如下: Whitelabel Error Page
此应用程序没有针对/ error的显式映射,因此您将其视为后备。 Fri Mar 09 17:42:13 CST 2018 有一个意外错误(type = Not Found,status = 404)。 无讯息
控制器下加 @RequestMapping("/uploadStatus") public String Status(@ModelAttribute("message") String message) { return "uploadStatus"; } 就可以解决问题了
请注意这里是spring boot 1.4或者1.5版本,使用spring.http.multipart.xxxx
配置项。
而在spring boot 2.x版本,要使用spring.servlet.multipart.xxxx
配置项。
在spring boot 1.3版本,要使用multipart.xxxx
配置项。
否则配置是无效的哦
这里说一下,我看源码MultipartException
默认只有一个子类:MaxUploadSizeExceededException
,即超过文件上传大小限制异常
,然后我为了测试这个全局异常处理类handleError1
,不停上传超限制大小的文件,结果一直连接已重置
,我就想怎么uploadStatus
获取不到报错信息呢?一直已重置?我一定要让它显示报错信息!然后调注解、改返回值、改参数搞了半天发现,这不就是回到了开头吗?tomcat上传文件超过限制就会连接已重置,全局异常处理类都捕获不到。要想测试这个全局异常处理类,得自己写MultipartException子类,不能直接用MaxUploadSizeExceededException
......
如果使用springboot2.0 无论是用TomcatServletWebServerFactory还是MultipartConfigElement都会导致tomcat对文件大小的限制高于springboot配置中的限制,要么连接重置捕获不到异常要么文件直接上传成功了
解决办法:在application.properties中添加
server.tomcat.max-swallow-size=-1
@waconde 这里说一下,我看源码
MultipartException
默认只有一个子类:MaxUploadSizeExceededException
,即超过文件上传大小限制异常
,然后我为了测试这个全局异常处理类handleError1
,不停上传超限制大小的文件,结果一直连接已重置
,我就想怎么uploadStatus
获取不到报错信息呢?一直已重置?我一定要让它显示报错信息!然后调注解、改返回值、改参数搞了半天发现,这不就是回到了开头吗?tomcat上传文件超过限制就会连接已重置,全局异常处理类都捕获不到。要想测试这个全局异常处理类,得自己写MultipartException子类,不能直接用MaxUploadSizeExceededException
......
你好,可以给一下具体的代码看看吗,谢谢你
@supercai0125 如果使用springboot2.0 无论是用TomcatServletWebServerFactory还是MultipartConfigElement都会导致tomcat对文件大小的限制高于springboot配置中的限制,要么连接重置捕获不到异常要么文件直接上传成功了 解决办法:在application.properties中添加
server.tomcat.max-swallow-size=-1
牛逼,解决了我的问题