MultipartFile文件上传

一、配置文件:
SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file。在springmvc.xml中进行配置,目录结构如下:

<!-- 配置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="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data"><input type="file" name="img"></br><input type="submit" value="上传">
</form> 
</body> 

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

三、编写上传控制类

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

  //单个文件上传@RequestMapping("upload")public String tolist(@RequestParam("img") MultipartFile img) throws IOException {//上传图片名称String originalFilename = img.getOriginalFilename();//上传路径File file = new File("E:\\upload\\" + originalFilename);if(!file.exists()){file.mkdir();}//将内存中的文件上传到磁盘img.transferTo(file);return "list";}

3、使用SpringMVC注解RequestParam来指定表单中的img参数;
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="${pageContext.request.contextPath}/fileUpload" method="post" enctype="multipart/form-data"><input type="file" name="img"></br><input type="file" name="img"></br><input type="file" name="img"></br><input type="submit" value="上传">
</form> 
</body>

2、编写处理表单的action

 //多文件上传@RequestMapping("fileUpload")@ResponseBodypublic String file(@RequestParam("img") MultipartFile[] img) throws IOException {for (int i = 0; i <img.length ; i++) {//上传图片名称String originalFilename = img[i].getOriginalFilename();//上传路径File file = new File("E:\\upload\\" + originalFilename);if(!file.exists()){file.mkdir();}//将内存中的文件上传到磁盘img[i].transferTo(file);}return "success";}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个简单的 iBatis 实现——完整示例

表和数据&#xff1a; CREATE TABLE weather (city varchar(80),temp_lo int, -- low temperaturetemp_hi int, -- high temperatureprcp real, -- average temperaturedate date );insert int…

测绘技术设计规定最新版_公示 | 29家单位申报甲级测绘资质审查意见

关于北京同创天成工程勘测有限公司等29家单位申报甲级测绘资质审查意见的公示  根据《中华人民共和国测绘法》和《测绘资质管理规定》《测绘资质分级标准》(国测管发〔2014〕31号)&#xff0c;我部对北京同创天成工程勘测有限公司、北京麦格天宝科技股份有限公司、中友四达(北…

智能驾驶时代已经到来

来源&#xff1a;中国科学报 概要&#xff1a;智能化、电动化、轻量化&#xff0c;无疑是被业界公认的汽车的三大发展方向。其中&#xff0c;汽车的智能化&#xff0c;或者说智能驾驶最为引人关注。 智能化、电动化、轻量化&#xff0c;无疑是被业界公认的汽车的三大发展方向。…

@requestparam @param @pathvariable @requestbody的区别

requestParam注解 用来获取前台传递过来的参数&#xff0c;例如获取以下链接的参数&#xff1a; http://api.nc.com/api/item/category/list?pid0 public String Demo1(RequestParam String pid){ System.out.println(“链接中请求参数的id&#xff1a;”pid); return null; }…

PostgreSQL 的一个简单连接和查询操作——示例

表和数据&#xff1a; CREATE TABLE weather (city varchar(80),temp_lo int, -- low temperaturetemp_hi int, -- high temperatureprcp real, -- average temperaturedate date );insert int…

8s nfs 挂载文件_Kubernetes集群使用网络存储NFS

NFS存储NFS即网络文件系统Network File System&#xff0c;它是一种分布式文件系统协议&#xff0c;最初是由Sun MicroSystems公司开发的类Unix操作系统之上的一款经典网络存储方案&#xff0c;其功能是在允许客户端主机可以像访问本地存储一样通过网络访问服务端文件。Kuberne…

2030全球新出行产业报告:2.2万亿美元蛋糕将这样分

来源:智东西 概要:汽车与出行产业面临的电动化、智能化、共享化以及轻量化变革,已经成了全球共识。

insert插入语句设置主键id回滚

insert添加记录时&#xff0c;如果id在数据库表t_ss中设置为自增主键&#xff0c;往往如果最后一条记录是id47&#xff0c;但是当你把这条数据进行删除&#xff0c;再次添加&#xff0c;则这条记录就会成为id48的记录&#xff0c;使得数据库中的数据id不以自己所期望的那样成为…

实现pv uv统计_聊聊前端监控(二)--行为监控的技术实现

上一篇梳理了前端监控的主要场景和类型&#xff0c;从本文开始&#xff0c;讨论下我知道的一些技术实现。前端黑科技层出不穷&#xff0c;个人眼界有限&#xff0c;尽量把了解到的实现方式都罗列出来&#xff0c;希望对大家有些启发&#xff0c;同时也欢迎流言讨论。限于篇幅&a…

Science:揭示人类大脑进化机制

来源&#xff1a;细胞 概要&#xff1a;人类与其它灵长类动物的最大区别在于我们大脑的不同&#xff0c;这也是我们作为人类最特殊的标志之一。 人类与其它灵长类动物的最大区别在于我们大脑的不同&#xff0c;这也是我们作为人类最特殊的标志之一。 然而&#xff0c;人类与灵长…

Redis哨兵的详解

1 哨兵的作用 哨兵是redis集群架构中非常重要的一个组件&#xff0c;主要功能如下&#xff1a; 集群监控&#xff1a;负责监控redis master和slave进程是否正常工作消息通知&#xff1a;如果某个redis实例有故障&#xff0c;那么哨兵负责发送消息作为报警通知给管理员故障转移…

单元格格式_单元格格式的用法你知道吗~~

想了解excel吗&#xff1f;&#xff1f;&#xff1f; 想从小白变大神吗&#xff1f;&#xff1f;&#xff1f; 快来look look excel单元格格式的用处吧&#xff01;&#xff01;&#xff01;先来了解一下单元格格式的…

人工智能名人堂第54期 | 深度学习鼻祖:Geoffrey Hinton

来源&#xff1a;德先生 概要&#xff1a;近日&#xff0c;他因提出capsule 概念&#xff0c;推翻反向传播再次引发广泛关注与热议。 Geoffrey Hinton&#xff0c;被称为“神经网络之父”、“深度学习鼻祖”&#xff0c;他曾获得爱丁堡大学人工智能的博士学位&#xff0c;并且为…

strut2 相关

1、strut2 的Eclipse 插件地址&#xff1a;http://mvcwebproject.sourceforge.net/install.html#Perform_installation

raid 物理盘缓存状态_使用MegaCli工具查看Raid磁盘阵列状态

文章本身我不做过多修改了&#xff0c;在这里我就把自己在安装时候碰到的难点跟大家提下。1.何处下载&#xff1f;首先&#xff0c;根据文章中的路径已经下载不到相应的文件了&#xff0c;在此我们就自己到http://www.lsi.com的网站上去搜&#xff0c;尝试了各种组合最后终于用…

eureka和zookeeper的区别

首先我们先说下&#xff1a; RDBMS>&#xff08;MySql,Oracle,SqlServer等关系型数据库&#xff09;遵循的原则是&#xff1a;ACID原则&#xff08;A&#xff1a;原子性。C&#xff1a;一致性。I&#xff1a;独立性。D&#xff1a;持久性。&#xff09;。 NoSql> &#…

struts2 防止重复提交 与 进入等待画面

演示重复提交的错误&#xff1a; 相关文件&#xff1a; struts.xml <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache…

征服围棋之后 谷歌DeepMind宣布利用AI对抗乳腺癌

来源&#xff1a;全球人工智能 概要&#xff1a;在征服围棋世界之后&#xff0c;DeepMind公司将许多机器学习资源用于提升医疗水平&#xff0c;今天&#xff0c;DeepMind宣布利用人工智能对抗乳腺癌。 在征服围棋世界之后&#xff0c;DeepMind公司将许多机器学习资源用于提升医…

php进程间通信 yoc_PHP 进程间通信各种通信方式间的优劣之分??

目前我所了解的进程间通信的方式有&#xff1a;1. PHP 消息队列(sysvmsg 扩展)我的理解&#xff1a; 消息是一次性消耗品。一个进程向消息队列发送消息后&#xff0c;这个消息只能够被另一个进程接收&#xff0c;接收后&#xff0c;这个消息就彻底从消息队列中被去除了&#xf…

rabbitmq详细入门文档+springboot结合使用

在介绍RabbitMQ之前&#xff0c;我们先来看下面一个电商项目的场景&#xff1a; 商品的原始数据保存在数据库中&#xff0c;增删改查都在数据库中完成。 搜索服务数据来源是索引库&#xff08;Elasticsearch&#xff09;&#xff0c;如果数据库商品发生变化&#xff0c;索引库…