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,而我提交的文件太大了. 解决方案:修改 ...
随机推荐
- 一台机器同时运行多个appium实例
测试需要同时在多个android设备上运行,就需要启动多个appium 第一台是运行微信: DesiredCapabilities capabilities = new DesiredCapabili ...
- python3-day4(re正则表达式,冒泡)
一.正则表达式常用 1.re.match:只尝试从字符串的查找,后面不作查找. 例子: import re text="aabcdefg123123" m=re.match('a' ...
- EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充
EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...
- Nginx的启动脚本
vi /etc/init.d/nginx #!/bin/sh # nginx Startup script for nginx # chkconfig: - 85 15 # proces ...
- CentOS CVS安装使用
CentOS CVS安装使用 一.CVS简介 CVS(Concurrent Versions System)版本控制系统:是一种GNU软件包,CVS是一个C/S系统,主要用于在多人开发环境下的源码 ...
- jquery选择指定元素之外的所有元素
最近的项目中有这么一个需求,点击一排图片中的任意一张后底部弹出一个对话框,要求点击任意地方隐藏对话框 这个时候用not()显然是不现实的,用closest()可以实现差不多的功能 <!DOCTY ...
- mongodb 详解 error:10061 由于目标计算机积极拒绝,无法连接解决方法
mongodb下载地址(32位):下载地址 自己选择版本 建立如下与mongodb并行的两个文件夹data和log. 然后建立mongo.config. 在mongo.config配置文件中输入: # ...
- (转)HTTP 无法注册 URL http://+:9999/CalculatorService/。进程不具有此命名空间的访问权限
写WCF时在 1 host.Open(); 报错:HTTP 无法注册 URL http://+:9999/CalculatorService/.进程不具有此命名空间的访问权限(有关详细信息,请参见 h ...
- FpSpread添加标注
先看效果 实现: FarPoint.Web.Spread.StyleInfo Errorcss = new FarPoint.Web.Spread.StyleInfo(); Errorcss.Bord ...
- C# 将对象序列化为Json格式
public static string JsonSerializer<T>(T t) { DataContractJsonSerializer ser = new DataContrac ...