Spring mvc文件上传实现

Spring mvc文件上传实现 jsp页面客户端表单编写

三个要素:
1.表单项type=“file”
2.表单的提交方式:post
3.表单的enctype属性是多部分表单形式:enctype=“multipart/form-data”
会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
3.1.当form表单修改为多部分表单时,request.getParameter()将失效。
3.2.enctype=“application/x-www-form-urlencoded”时,form表单的正文内容格式是:key=value&key=value&key=value
3.3.当form表单的enctype取值为Mutilpart/form-data时,请求正文内容就变成多部分形式:

在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="${pageContext.request.contextPath}/quick16" method="post" enctype="multipart/form-data"> 名称:<input type="text"><br> 文件:<input type="file"> <input type="submit" value="点击提交"> </form> </body> </html> 需要导入的jar坐标 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> 配置文件上传解析器 <bean> <!--上传文件的编码类型--> <property value="utf-8"></property> <!--上传单个文件的大小--> <property value="50000000"></property> <!--上传文件的总大小--> <property value="54288600"></property> </bean> 编写文件上传代码 @RequestMapping(value = "/quick17") /* 告诉SpringMvc框架,方法返回的字符串不是跳转是直接在http响应体中返回*/ @ResponseBody public void save17(String username, MultipartFile uploadFile) throws IOException { /*获取原始文件名*/ String originalFilename = uploadFile.getOriginalFilename(); /*保存到服务器上这里是本地*/ uploadFile.transferTo(new File("F:\\upload\\"+originalFilename)); } 上传多个文件 jsp表单代码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="${pageContext.request.contextPath}/quick18" method="post" enctype="multipart/form-data"> 名称:<input type="text"><br> 文件1:<input type="file"> 文件2: <input type="file"> <input type="submit" value="点击提交"> </form> </body> </html> 服务器端代码 @RequestMapping(value = "/quick18") /* 告诉SpringMvc框架,方法返回的字符串不是跳转是直接在http响应体中返回*/ @ResponseBody public void save18(String username, MultipartFile[] uploadFiles) throws IOException { for (MultipartFile uploadFile : uploadFiles) { /*获取原始文件名*/ String originalFilename = uploadFile.getOriginalFilename(); /*保存到服务器上这里是本地*/ uploadFile.transferTo(new File("F:\\upload\\"+originalFilename)); } }

在这里插入图片描述

成功保存到本地

在这里插入图片描述

以上就是SpringMVC系列的第三章,主要侧重SpringMVC上传文件的操作,我后续会持续更新Springmvc系列课程,本博客主要侧重于数据结构于算法和java开发,觉得我的文章有帮助的小伙伴可以关注我,有疑问可评论私信,相逢即是缘,大家高处见

在这里插入图片描述

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygppg.html