SpringMVC 文件上传配置,多文件上传,使用的MultipartFile

利用SpringMVC中MultipartFile的文件上传 1.基于SpringMVC的文件上传 1)创建项目 创建新项目:Packaging:war 然后,按照传统方式完成项目的创建(添加web.xml;添加Tomcat Runtime,复制pom.xml中的依赖,复制web.xml中的配置,复制spring的配置文件。注意:检查spring的配置文件是否存在多余且不可用的配置,如果有,则删除)。 2)制作上传页面 上传文件的页面只要求是htm... 阅读详情
基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤

SpringMVC 基础教程 框架分析:http://blog.youkuaiyun.com/swingpyzf/article/details/8885459

SpringMVC 基础教程 简单入门实例:http://blog.youkuaiyun.com/swingpyzf/article/details/8904205


文件上传项目的源码下载地址:http://download.youkuaiyun.com/detail/swingpyzf/6979915


一、配置文件:
SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file

<!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->
	<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
		p:defaultEncoding="UTF-8"
		p:maxUploadSize="5400000"
		p:uploadTempDir="fileUpload/temp"
	 >
	</beans:bean>

其中属性详解:
defaultEncoding="UTF-8" 是请求的编码格式,默认为iso-8859-1
maxUploadSize="5400000" 是上传文件的大小,单位为字节
uploadTempDir="fileUpload/temp" 为上传文件的临时路径


二、创建一个简单的上传表单:

<body>
<h2>文件上传实例</h2>


<form action="fileUpload.html" method="post" enctype="multipart/form-data">
	选择文件:<input type="file" name="file">
	<input type="submit" value="提交"> 
</form>


</body>

注意要在form标签中加上 enctype="multipart/form-data"表示该表单是要处理文件的,这是最基本的东西,很多人会忘记然而当上传出错后则去找程序的错误,却忘了这一点


三、编写上传控制类

1、创建一个控制类: FileUploadController和一个返回结果的页面list.jsp
2、编写提交表单的action:

//通过Spring的autowired注解获取spring默认配置的request
	@Autowired
	private HttpServletRequest request;

	/***
	 * 上传文件 用@RequestParam注解来指定表单上的file为MultipartFile
	 * 
	 * @param file
	 * @return
	 */
	@RequestMapping("fileUpload")
	public String fileUpload(@RequestParam("file") MultipartFile file) {
		// 判断文件是否为空
		if (!file.isEmpty()) {
			try {
				// 文件保存路径
				String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
						+ file.getOriginalFilename();
				// 转存文件
				file.transferTo(new File(filePath));
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		// 重定向
		return "redirect:/list.html";
	}

	/***
	 * 读取上传文件中得所有文件并返回
	 * 
	 * @return
	 */
	@RequestMapping("list")
	public ModelAndView list() {
		String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/";
		ModelAndView mav = new ModelAndView("list");
		File uploadDest = new File(filePath);
		String[] fileNames = uploadDest.list();
		for (int i = 0; i < fileNames.length; i++) {
			//打印出文件名
			System.out.println(fileNames[i]);
		}
		return mav;
	}



3、使用SpringMVC注解RequestParam来指定表单中的file参数;
4、指定一个用于保存文件的web项目路径
5、通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。


到此基本的文件上传就结束了。


MultipartFile类常用的一些方法:


String getContentType()//获取文件MIME类型
InputStream getInputStream()//后去文件流
String getName() //获取表单中文件组件的名字
String getOriginalFilename() //获取上传文件的原名
long getSize() //获取文件的字节大小,单位byte
boolean isEmpty() //是否为空
void transferTo(File dest) //保存到一个目标文件中。


四、多文件上传。

多文件上传其实很简单,和上传其他相同的参数如checkbox一样,表单中使用相同的名称,然后action中将MultipartFile参数类定义为数组就可以。
接下来实现:

1、创建一个上传多文件的表单:

<body>
	<h2>上传多个文件 实例</h2>


	<form action="filesUpload.html" method="post"
		enctype="multipart/form-data">
		<p>
			选择文件:<input type="file" name="files">
		<p>
			选择文件:<input type="file" name="files">
		<p>
			选择文件:<input type="file" name="files">
		<p>
			<input type="submit" value="提交">
	</form>
</body>


2、编写处理表单的action,将原来保存文件的方法单独写一个方法出来方便共用:
/***
	 * 保存文件
	 * @param file
	 * @return
	 */
	private boolean saveFile(MultipartFile file) {
		// 判断文件是否为空
		if (!file.isEmpty()) {
			try {
				// 文件保存路径
				String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
						+ file.getOriginalFilename();
				// 转存文件
				file.transferTo(new File(filePath));
				return true;
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return false;
	}
3、编写action:
	@RequestMapping("filesUpload")
	public String filesUpload(@RequestParam("files") MultipartFile[] files) {
		//判断file数组不能为空并且长度大于0
		if(files!=null&&files.length>0){
			//循环获取file数组中得文件
			for(int i = 0;i<files.length;i++){
				MultipartFile file = files[i];
				//保存文件
				saveFile(file);
			}
		}
		// 重定向
		return "redirect:/list.html";
	}

最后运行项目上传文件:



因为工作的原因写博客和教程的时间越来越少了,所以今后的博客尽量简短明了,以实践使用为主,

同时也欢迎大家关注我的个人公众号来提相关问题,我会力所能及的回答。




Ubuntu安装opencv4.5(自己安装过程详细) 1.下载opencv 在opencv官网下载source版,下载链接 http://opencv.org/releases.html。别下载错版本 下载过程就不多说了。 2.安装过程 2.1解压 unzip opencv-4.5.0.zip cd opencv-4.5.0 2.2安装依赖的库 sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat- 阅读详情

相关推荐

ADC电路项目1——10bit SAR ADC 设计,smic18工艺,有工艺库,有效位数ENOB为9.8

包括详细仿真文档,原理介绍,完整电路图,仿真参数已设好,可直接使用,在自己的电脑上就可以运行仿真。本设计采用 smic18mmrf CMOS 工艺,使用栅压自举电路的采样开关,Vcm-based 开关。电容开关控制电路,10 位 DFF,最后用 10 位理想 DAC 模块将数字码转换为 10 进制量进。时序上级板采样的 DAC 电容阵列,两级动态比较器,比较器异步时钟,SAR 动态逻辑,DAC。10bit SAR ADC 设计,smic18工艺,有工艺库,有效位数ENOB为9.8。

qq_48407979的博客 814

Springboot文件上传(六)

上章我们讲解了MongoDB的集成,现在我们开始下一篇,文件上传的简单集成。 一、前言 1.上传文件是互联网中应用的场景之一,最典型的情况就是上传头像等。文件上传主要是将文件通过IO流传输到服务器的某一个特定的文件夹下。 2.上传文件,必须将表单method设置为post,并将enctype设置为multipart/form-data。只有这样,浏览器才会把用户...

xuforeverlove的博客 1389

智能车学习日记【二】————十字和斜入十字

智能车学习日记【二】————十字和斜入十字 文章目录 智能车学习日记【二】————十字和斜入十字 前言 一、普通十字补线 二、斜入十字 1.判断是否为斜入十字和斜入十字类型 2.找斜入十字拐点 总结 前言 经过了一个多月的学习,小白的我终于也是能较稳定调出了2.8m以上的四轮车,过程中也遇到了很多困难,其中就有十字补线和斜入十字补线。尤其是斜入十字也是困扰了我快一周,现在和大家分享一下我处理斜入十字的方法(我的方法其实还有很多漏洞需要改进,仅供大家参考理解一下,欢迎各位在评论区指点出可

bsefef的博客 2740

【Spring MVC】后端处理多文件上传如何保持最大的灵活性

如何根据版本号找官方文档后端如何声明Controller能保持较好的灵活性。

chenghan_yang的博客 1569

飞凌OK3588-C Linux R4系统下MIPI YUV摄像头CSI尺寸错误排查与极性适配方案

本文详细介绍了在飞凌OK3588-C平台的Linux R4系统下调试MIPI YUV摄像头时遇到的'csi size err'错误排查与极性适配方案。通过分析信号极性、驱动参数调整及FPGA协同调试,提供了从硬件检测到系统级调试的完整解决方案,帮助开发者快速解决类似问题。

bean的博客 258

SRRC型号核准的模块豁免规则解析——如何利用完整型模块简化设备认证流程

本文详细解析了SRRC型号核准中模块豁免规则的应用,重点介绍了完整型模块的技术定义、豁免条件及实际应用场景。通过合理利用完整型模块,企业可显著简化设备认证流程,缩短上市周期并降低成本。文章还提供了模块选型指南和常见问题解决方案,帮助工程师高效应对SRRC认证挑战。

weixin_29306011的博客 933

Java多种文件上传方式总结

请求类型 单文件上传 //上传单个文件 @ResponseBody @RequestMapping(value = "uploadfile", produces = "multipart/form-data;charset=UTF-8") public String uploadfiles(HttpServletRequest request){ CommonsMultipartResolver multipartResolver = new Common

enjoy.day 5217

Windowns下Git环境配置-命令行方式

文章目录一、配置Git1.1 下载Git并安装1.2 配置本地Git用户名和邮箱1.3 注册GitHub二、生成本地公钥,放到GitHub上-SSH Key2.1 生成本地公钥命令2.2 查看生成的公钥2.3 在GitHub放上公钥并测试连通性三、创建项目实操四、可能出现的问题4.1.push不成功4.2.提示SSL的问题4.3.域名不能解析的问题4.4.如果github连接不上的问题 一、配置Git 1.1 下载Git并安装 Git官网 默认安装,根据需要修改安装路径 1.2 配置本地Git用户名和邮箱

学习工作笔记 1135

多文件上传List<MultipartFile>+<el-upload>-带参数

多文件上传List<MultipartFile>+<el-upload>-带参数

xj627141903的博客 3163

SCI投稿Title Page、Cover letter、Highlights、Manuscript模板

(简要介绍一下论文的创新性). I hope this paper issuitable for “Journal Name”.版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/weixin_48615832/article/details/120317336。

qq_15963745的博客 3699

SAP ABAP CDS View 里的日期函数

摘要:本文系统介绍了ABAP CDS日期函数在企业级应用中的关键作用,包括账龄计算、合同续期等业务场景。重点解析了DATS_IS_VALID、DATS_DAYS_BETWEEN等核心函数的语义和使用边界,特别强调on_error四种异常处理策略的选择逻辑。针对系统日期获取,对比了经典CDS的参数注入和View Entity会话变量两种方式。文章还提供了完整可运行的示例代码(包含CDS视图和ABAP程序),帮助开发者快速验证不同版本下的函数行为差异,确保在实际项目中正确应用这些日期处理函数。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 378

java 文件上传 配置_SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例...

基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤文件上传项目的源码下载地址:demo一、配置文件:SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的filep:defaultEncoding="UTF-8...

weixin_29666725的博客 470

【软考之软件设计师】学习笔记

interface 接口implements 实现接口(与接口配套使用)接口里要是有方法定义,子类就会实现。

云轩阁 2533

springmvc 上传文件大小配置_SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例...

基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤文件上传项目的源码下载地址:demo一、配置文件:SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file其中属性详解:defaultEncoding="...

weixin_39517520的博客 295

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例

基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤 文件上传项目的源码下载地址:demo 一、配置文件: SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file

zkdceo的专栏 2823

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: IOS TableView的Cell高度自适应,UILabel自动换行适应
下一篇: Xcode5 证书配置
SwingPyzf
博客等级 码龄15年 403粉丝 40原创
评论 35
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值