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,而我提交的文件太大了. 解决方案:修改 ...
随机推荐
- java 读取mysql库表数据
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- (转)iOS Wow体验 - 第一章 - iOS人机界面设计规范纵览
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第一章译文精选,其余章节将陆续放出. 关于本套译文 ...
- Android SDK及ADT更新访问问题的解决办法
一.访问问题Eclipse使用SDK Manager更新时总是出现问题 Failed to fetch URL https://dl-ssl.google.com/android/repository ...
- [RxJS] Changing Behavior with MapTo
You often need streams to trigger different behaviors on the data based on which streams triggers. T ...
- CodeSmith使用总结--调用自定义方法
上一篇读取了一个表的内容,但是到了真正应用的时候还是不够用的,我们很容易可以对比出来,SQL里边的数据类型的定义和C#中有所不同,比如Saler--String,大写的String在C#中不是一个类型 ...
- CSS3绘制环形进度条
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- js数组 函数
js数组 filter(),map(),some(),every(),forEach(),lastIndexOf(),indexOf() 文章1:http://www.jb51.net/article ...
- js+图片实现图片flash效果
var pic_width=685; //图片宽度 var pic_height=225; // 图片高度 var button_pos=4; //按扭位置 1左 2右 3上 4下 var stop_ ...
- (转载)iOS 多媒体
音频:(音效.音乐) 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音 ...
- js中完数的输出
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...