spring MVC上传文件演示
//相比smartUpload功能上感觉确实有点心有意力不足的感觉,就安全性判断后缀,smartUpload就非常方便。
public ModelAndView addFileUp(HttpServletRequest request,HttpServletResponse response) throws Exception {
String preName = genName.doMake();//设置文件前缀名时间戳的MD5值
String fileName = null; //路径+文件名+后缀
String sucName = null; //最终名称
String oldName = null; //原始名称
//使用MultipartHttpServletRequest包装文件数据
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
//构建图片保存的目录
String logoPathDir = "/images/case/";
//得到图片保存目录的真实路径
String logoRealPathDir = request.getSession().getServletContext().getRealPath(logoPathDir);
//根据真实路径创建目录
File logoSaveFile = new File(logoRealPathDir);
//判断组合的路径是否存在,不存在就创建
if (!logoSaveFile.exists())
{
logoSaveFile.mkdirs();
}
//页面控件的文件流,从页面上获取属性
MultipartFile multipartFile = multipartRequest.getFile("cpic");
// 获取文件名,即上传的原始文件名
oldName = multipartFile.getOriginalFilename();
System.out.println(multipartFile.getOriginalFilename());
//计算文件名长度(不包含后缀)
int index = oldName.lastIndexOf(".");
//如果文件名称<0 则用preName作为文件名
if (index == -1) {
sucName = preName;
} else {
//否则就用自己定义的
sucName = preName + oldName.substring(index);
}
//设置属性值
//拼成完整的文件保存路径加文件
//得到的结果示范:d:\web\images\case\时间戳的MD5.gif
fileName = logoRealPathDir + File.separator + sucName;
File file = new File(fileName);
try {
//保存上传文件
multipartFile.transferTo(file);
try {
cases.setCtitle(request.getParameter("ctitle"));
cases.setCurl(request.getParameter("curl"));
cases.setCtime(ts);
cases.setCcontext(request.getParameter("ccontext"));
cases.setCpic("images/case/" + sucName);
cases.setCtime(ts);
if (cases != null && !"".equals(cases)) {
casesBiz.doAdd(cases);
mv.addObject("casesMsg", "提示:案例 <b>[" + cases.getCtitle()+ "]</b> 添加完成!");
} else {
mv.addObject("casesMsg", "提示:案例 <b>[" + cases.getCtitle()+ "]</b> 添加失败!");
}
} catch (Exception e) {
// TODO: handle exception
mv.addObject("casesMsg", "异常出现:"+e);
}
} catch (Exception e) {
mv.addObject("casesMsg", "异常出现:"+e);
}
mv.setViewName("admin.do?method=cases");
return mv;
}
XML
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- set the max upload size100MB -->
<property name="maxUploadSize">
<value>104857600</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
<property name="defaultEncoding">
<value>GBK</value>
</property>
</bean>
JAR文件下载地址:点击下载
spring MVC上传文件演示的更多相关文章
- Spring MVC上传文件
Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...
- Spring MVC 上传文件
Spring MVC上传文件需要如下步骤: 1.前台页面,form属性 method设置为post,enctype="multipart/form-data" input的typ ...
- Spring MVC上传文件原理和resolveLazily说明
问题:使用Spring MVC上传大文件,发现从页面提交,到进入后台controller,时间很长.怀疑是文件上传完成后,才进入.由于在HTTP首部自定义了“Token”字段用于权限校验,Token的 ...
- 解析Spring MVC上传文件
新建一个普通的maven工程 在pom.xml文件中引入相应的坐标 <?xml version="1.0" encoding="UTF-8"?> & ...
- Spring Mvc 上传文件Demo 实例
返得利购物. 淘宝.京东500家商城合作,包括全面的商城返利网.注冊就送5元,购物就有返利.随时提现. 同学们,新一轮的返利大潮正在慢慢靠近,让购物都认为自己在赚钱.购物,机票.游戏.酒店旅游,地方特 ...
- MVC上传文件
ASP.NET MVC上传文件是必段撑握的知识.加强训练才是.以前Insus.NET曾使用第三方MyAjaxForm.js :http://www.cnblogs.com/insus/p/378548 ...
- Spring框架学习(8)spring mvc上传下载
内容源自:spring mvc上传下载 如下示例: 页面: web.xml: <?xml version="1.0" encoding="UTF-8"?& ...
- springboot(十七):使用Spring Boot上传文件
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9. ...
- asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度
APS.NET MVC 上传文件出现 System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...
随机推荐
- 在CentOS中编译安装VIM 7.3
默认安装的 Vim 不带有多字符支持,所以不支持中文.无论是将 CentOS 本来的语系改为中文还是将 Vim 的语系设置改为中文,都不能正常显示中文.为了在 Vim 中能够正常处理中文,我们需要在编 ...
- Map.EntrySet的使用方法
1.package edu.smc.test; 2. 3.import java.util.HashMap; 4.import java.util.Iterator; 5.import java.ut ...
- VCS仿真生成fsdb文件(Verilog)
VCS仿真生成fsdb文件(Verilog) 一.环境 Linux 平台 csh环境 VCS 64bit Verdi3 二.开始仿真 1. 联合仿真环境配置 a.在testbench中加入如下语句: ...
- p标签里面不要放div标签(块元素)
最好不要在p标签里面嵌套块级元素(如div Ul): <p>我来测试下<div>块元素</div>放在p标签的情况</p> <p>我来测试下 ...
- AVT Vimba与OpenCV环境配置
近来,由于项目需求,需要使用AVT的一款相机采集图像并进行相应的算法处理.环境的配置过程较为复杂,特此记录,以做备忘.也给有需要的小伙伴们一些key point的分享. 搭建环境:Windows7 + ...
- Gradle 编译时选择不同的 google-services.json
在做的安卓应用需要在 debug 和 release build中使用不同的谷歌服务账号,要用到不同的google-serivces.json ,手动替换的话太费时费力,好在万能的gradle可以完成 ...
- hadoop 2.6.0上安装sqoop-1.99.6-bin-hadoop200
第一步:下载sqoop-1.99.6-bin-hadoop200.tar.gz 地址:http://www.eu.apache.org/dist/sqoop/1.99.6/ 第二步:将下载好的sqo ...
- ArcEngine - 地图和布局同步
1,定义同步的类: using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...
- iOS_SN_Socket网络编程(一)
1.Socket简介 首先让我们通过一张图知道socket在哪里? socket在哪里 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口. 2.TCP和UDP的区别 在这里就 ...
- Js 时间间隔计算(间隔天数)
function GetDateDiff(startDate,endDate) { var startTime = new Date(Date.parse(startDate.replac ...