//相比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上传文件演示的更多相关文章

  1. Spring MVC上传文件

    Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...

  2. Spring MVC 上传文件

    Spring MVC上传文件需要如下步骤: 1.前台页面,form属性 method设置为post,enctype="multipart/form-data"  input的typ ...

  3. Spring MVC上传文件原理和resolveLazily说明

    问题:使用Spring MVC上传大文件,发现从页面提交,到进入后台controller,时间很长.怀疑是文件上传完成后,才进入.由于在HTTP首部自定义了“Token”字段用于权限校验,Token的 ...

  4. 解析Spring MVC上传文件

    新建一个普通的maven工程 在pom.xml文件中引入相应的坐标 <?xml version="1.0" encoding="UTF-8"?> & ...

  5. Spring Mvc 上传文件Demo 实例

    返得利购物. 淘宝.京东500家商城合作,包括全面的商城返利网.注冊就送5元,购物就有返利.随时提现. 同学们,新一轮的返利大潮正在慢慢靠近,让购物都认为自己在赚钱.购物,机票.游戏.酒店旅游,地方特 ...

  6. MVC上传文件

    ASP.NET MVC上传文件是必段撑握的知识.加强训练才是.以前Insus.NET曾使用第三方MyAjaxForm.js :http://www.cnblogs.com/insus/p/378548 ...

  7. Spring框架学习(8)spring mvc上传下载

    内容源自:spring mvc上传下载 如下示例: 页面: web.xml: <?xml version="1.0" encoding="UTF-8"?& ...

  8. springboot(十七):使用Spring Boot上传文件

    上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9. ...

  9. asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度

    APS.NET MVC 上传文件出现  System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...

随机推荐

  1. Android——LayoutInflater详解

    在实际工作中,事先写好的布局文件往往不能满足我们的需求,有时会根据情况在代码中自定义控件,这就需要用到LayoutInflater. LayoutInflater在Android中是"扩展& ...

  2. Android SDK及ADT更新访问问题的解决办法

    一.访问问题Eclipse使用SDK Manager更新时总是出现问题 Failed to fetch URL https://dl-ssl.google.com/android/repository ...

  3. JavaScript 之 call apply bind

    关键字 this 绑定的方法 this的动态切换,固然为JavaScript创造了巨大的灵活性,但也使得编程变得困难和模糊.有时,需要把this固定下来,避免出现意想不到的情况.JavaScript提 ...

  4. python-文件压缩和解压

    import tarfile #压缩 tar = tarfile.open('your.tar','w') tar.add('ooo.xml',arcname='ooo.xml') tar.close ...

  5. CPU使用率和Load Average的关系

    看了几篇博客总结的区别,自己终于明白了含义,在这里将理解总结一下: 对于定义和解释,感觉淘测试上的更容易理解: 引用如下: CPU使用率:  一段时间内CPU的使用状况,从这个指标可以看出某一段时间内 ...

  6. C#调用Java代码

    c#直接调用java代码,需要ikvmbin-0.44.0.5.zip.下载地址: http://pan.baidu.com/share/link?shareid=3996679697&uk= ...

  7. 如何安装windows7系统

      在XP时代,光驱对于我们而言仅仅是装系统用,不过在Win7发布之后,可以用U盘直接安装,省时省力. 首先在互联网下载UltraISO光盘映像文件制作/编辑/格式转换工具,(当然还有其它如WinIS ...

  8. 网站发布在另外一个网站下面配置伪静态之后图片样式和JS丢失

    <script src="<%=ResolveClientUrl("~/content/js/jquery-1.7.1.min.js") %>" ...

  9. React-nwb的使用

    一.查看nwb的版本 nwb -v 二.创建一个react项目 nwb new react-app react-demo 三.启动项目 nwb serve

  10. 《第一行代码》学习笔记7-活动Activity(5)

    1.Intent中只能指定一个action,但却能指定多个category. 2.使用隐式Intent,不仅可以启动自己程序内的活动,还可以启动其他程序的活动,使得Android应用程序之间 的功能共 ...