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,而我提交的文件太大了. 解决方案:修改 ...
随机推荐
- android_launcher的源码详细分析
转载请注明出处:http://blog.csdn.net/fzh0803/archive/2011/03/26/6279995.aspx 去年做了launcher相关的工作,看了很长时间.很多人都在修 ...
- web请求的处理流程
web请求的处理流程如下: 1.客户发起请求到服务器网卡:2.服务器网卡接受到请求后转交给内核处理:3.内核根据请求对应的套接字,将请求交给工作在用户空间的Web服务器进程4.Web服务器进程根据用户 ...
- 验证docker的Redis镜像也存在未授权访问漏洞
看到了这篇老外的博客:Over 30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities于 ...
- keepalived vip漂移基本原理及选举算法
keepalived可以将多个无状态的单点通过虚拟IP(以下称为VIP)漂移的方式搭建成一个高可用服务,常用组合比如 keepalived+nginx,lvs,haproxy和memcached等.它 ...
- python - XML文件及其操作
xml文件也是实现不同语言或者程序之间进行数据交换的协议,它的特点是尖括号开头,尖括号结尾.使用范围就更为广泛了,tomcat resin kvm 等等,使用了大量的xml文件来进行相关配置.先来看一 ...
- python学习-day3
今天是第三天学习,加油! 第一部分 集合 一.集合 1.什么是集合以及特性? 特性:无序的,不重复的序列,可嵌套. 2.创建集合 方法一:创建空集合 s1 = set() print(type(s1) ...
- 如何安装windows7系统
在XP时代,光驱对于我们而言仅仅是装系统用,不过在Win7发布之后,可以用U盘直接安装,省时省力. 首先在互联网下载UltraISO光盘映像文件制作/编辑/格式转换工具,(当然还有其它如WinIS ...
- Oracle存储过程procedure
--给plsql块设置一个名称保存下来便于调用 /* Create or replace procedure 名称 As 声明变量 Begin //代码块 End; --plsql块 Declare ...
- mysql配置文件转载
#BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大#TYPE: SYSTEM#END CONFIG INFO ## 此my ...
- ORACLE SQL 组函数【weber出品必属精品】
组函数:对一组数据进行加工,每组数据返回一个值 常用的组函数:count() avg() max() min() sum() count()函数 1. count(*) :返回总共的行 ...