Java进阶:SpringMVC文件上传
1. 文件上传三要素
- 表单项type = “file”
- 表单的提交方式为POST
- 表单的enctype属性是多部分表单形式,及enctype = ”multipart/form-data“
2. 文件上传原理
- 当form表单修改为多部分表单时,request.getParameter()将失效。
- enctype = "application/x-www-form-urlencoded"时候,form表单的正文内容格式是:key=value&key=value&key=value
- enctype = "multipart/form-data"时候,请求正文内容就变成了多部份形式:
3. 单文件上传步骤
3.1 导入fileupload和io坐标
<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.3</version>
</dependency>
3.2 配置文件上传解析器
<!--配置文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8"/><property name="maxUploadSize" value="500000"/>
</bean>
3.3 编写文件上传代码
测试代码
注意:函数文件参数名必须与上传表单文件name一致
代码
① 获取上传文件的名称:getOriginalFilename()
String originalFilename = upload.getOriginalFilename();② 设置存储路径:transferTo()
upload.transferTo(new File(“D:\upload” + originalFilename));@RequestMapping(value = "/quick23") @ResponseBody public void save23(String username, MultipartFile upload) throws IOException {System.out.println(12312312);// 获得上传文件名称String originalFilename = upload.getOriginalFilename();// 设置存储路径upload.transferTo(new File("D:\\upload\\" + originalFilename)); }
4. 多文件上传
与单文件上传类似,只需要多个参数即可
4.1 方式一
form表单name不一致,后端接口分别用不同参数进行接收
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/user/quick24" method="post" enctype="multipart/form-data">名称<label><input type="text" name="username"/></label><br>文件1<label><input type="file" name="upload"></label><br>文件2<label><input type="file" name="upload2"></label><br><input type="submit" value="提交"><br>
</form></body>
</html>
@RequestMapping(value = "/quick24")
@ResponseBody
public void save24(String username, MultipartFile upload, MultipartFile upload2) throws IOException {System.out.println(upload);System.out.println(upload2);// 获得上传文件名称String originalFilename = upload.getOriginalFilename();// 设置存储路径upload.transferTo(new File("D:\\upload\\" + originalFilename));String originalFilename2 = upload2.getOriginalFilename();upload2.transferTo(new File("D:\\upload\\" + originalFilename2));
}
4.2 方式二
form表单name一直,后端接口用数组接收参数
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/user/quick25" method="post" enctype="multipart/form-data">名称<label><input type="text" name="username"/></label><br>文件1<label><input type="file" name="upload"></label><br>文件2<label><input type="file" name="upload"></label><br><input type="submit" value="提交"><br>
</form></body>
</html>
@RequestMapping(value = "/quick25")
@ResponseBody
public void save25(String username, MultipartFile[] upload) throws IOException {for (MultipartFile multipartFile : upload) {String originalFilename = multipartFile.getOriginalFilename();multipartFile.transferTo(new File("D:\\upload\\" + originalFilename));}
}
Java进阶:SpringMVC文件上传相关推荐
- SpringMvc文件上传和下载
最近博主在做SpringMvc文件上传和下载的功能实现,上网查了很多资料很多都不太符合理想,找啊找,终于找到一个可以用的,然后再此基础上,我加以改进,可以支持多文件上传,而且代码非常精简,大家可以看看 ...
- springmvc请路径参数,springmvc-json-ajax使用,springmvc文件上传,springmvc文件下载,springmvc拦截器(内容较多)
按照操作,绝对都可以实现,亲测.....(项目所有文件和目录结构全都放上去了) idea工具,创建maven项目 第一步: 放置各种配置文件: pom.xml <?xml version=&qu ...
- java语言 文件上传,java中实现文件上传的方法
java中实现文件上传的方法 发布时间:2020-06-19 10:29:11 来源:亿速云 阅读:86 作者:Leah 这篇文章给大家分享的是java中实现文件上传的方法,相信大部分人都还没学会这个 ...
- java里面的文件上传与下载
java里面的文件上传与下载 文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileuplo ...
- java实现多文件上传至本地服务器
转载自 java实现多文件上传至本地服务器 博主最近在做一个内网项目,内部可以访问外部数据,但是外部访问不了内部数据,这也就造成了可能文件无法上传,所以博主另辟蹊径,在本地服务器上建立一个文件夹专门 ...
- SpringMVC文件上传功能MultipartFile参数为空
最近简单实现了一个springmvc文件上传功能,点了上传按钮一直报空指针,问题解决了mark一下留作以后查阅,如有搜到这篇文章的仅供参考,先上主要代码.springmvc.xml配置如下: < ...
- SpringMVC——文件上传下载,异步请求和SSM整合
一,SpringMVC文件上传下载 1.1 同步 1.1.1 文件上传 第一步:定义上传表单 <form action="${pageContext.request.contextPa ...
- Java实现图片文件上传
Java实现图片文件上传 Java实现后台图片上传,将上传图片的接口进行分层,便于维护接口. 接口部分(interface) 将接口分为单图片上传以及多图片上传 public interface Fi ...
- Win10搭建FTP服务器+java代码实现文件上传至FTP服务器
Win10搭建ftp服务器 打开控制面板 -> 程序和功能,点击启用或关闭Windows功能,勾选红色方框内的选项 控制面板 -> 管理工具,如下打开IIS管理器 先在本地磁盘中创建一个目 ...
- java+ajax实现文件上传
1 文件上传 利用Java+ajax实现文件上传,这里介绍两种提交方法,第一种是file提交,第二种是base64提交 1.1 file方式 1.1.1 FileNameUtils public cl ...
最新文章
- Android程序ToDoList增加配置项页面
- IDEA将项目上传至码云/GitHub托管
- 基于EasyUI的Web应用程序及过去一年的总结
- TensorflowSharp 简单使用与KNN识别MNIST流程
- [css] 你对响应式设计的理解是什么?知道它基本的原理是吗?要想兼容低版本的IE怎么做呢?
- error U1087: cannot have : and :: dependents for same target
- 经常在命令提示符中所使用的命令
- python 中 print 函数用法总结
- FFmpeg源代码简单分析:makefile
- php查看当前运行使用的是哪个php.ini
- 敏捷开发和瀑布开发的区别
- 从构建区块链理解区块链概念
- 美容院如何提升员工敬业度?
- fn映射 mac 键盘_如何在Mac OS X下修改Fn键的属性?
- SpringCloud五大常用组件
- ETL-kettle/pentaho的二次开发
- 区块链日记——【译】用Java创建你的第一个区块链-part2:可交易
- 真c++ 从二叉树到红黑树(3)之二叉搜索树BST
- HTML和CSS3写的switch插件
- 赵钟秋谈又拍网架构中的消息/任务系统
热门文章
- 7.jenkins 发布邮件
- 13.字符串,结构,联合
- php中字符串与数组的相互转化explode(separator,$str)与implode(separator,$arr)
- (hdu 1568) Fibonacci
- 基于扩展性考虑,不同场景选择的不同方案
- Windows中MySQL主从数据库搭建(三)
- C# CRC16 modbus
- Thinking in Java 12.8.2 在return中使用finally
- 解决响应式布局border带来的麻烦
- Linux下编译(安装)程序、编译库整理