SpringMVC+MyBaties关于上传(跟新)图片的问题
/**
* 方法名:uploadPhoto
* 描 述:TODO(上传图片)
* 作 者:池彦龙
* 时 间:2017/03/30
* 返回类型:
* 参 数:
* 异 常:
*/
Controller 层:
@RequestMapping(params = "method=uploadPhoto")// 注解RequestMapping
public void uploadPhoto(MultipartHttpServletRequest request,HttpServletResponse response){
Json json = new Json();
Parameter parameter;//获取页面传来值
Iterator<String> itr=request.getFileNames();
MultipartFile file = request.getFile(itr.next());
//获取项目的路径,保存到当前项目 webapps下面的target;注意此路径必须传,如果不传路径会保存到tomcat/bin路径下面(有的项目需要保存到指定盘时也不用传)
String baseUrl = request.getSession().getServletContext().getRealPath("/");
try{
parameter=initParameter(request);
json = indexService.uploadPhoto(file,baseUrl, parameter);
}catch (Exception e){
e.printStackTrace();
json.setCode("400");
json.setSuccess(false);
json.setMsg("上传失败");
}finally{
this.writeJson(request,response,json);
}
}
/**
* 方法名:uploadPhoto
* 描 述:TODO(上传图片)
* 作 者:池彦龙
* 时 间:2017/04/05
* 返回类型:
* 参 数:
* 异 常:
*/
Service 层:
public Json uploadPhoto(MultipartFile file,String baseUrl,Parameter parameter) throws IOException {
Json json=new Json();
Map<String,Object> requestMap=parameter.getRequestParamsMap();
// 上传到本地
String fileName = file.getOriginalFilename();
String filePath = ("app/photo/"+requestMap.get("userName")) ;
String[] fileNameArr=fileName.split("\\.");
//将文件名称改为UUID命名,防止重名
fileName=UUID.randomUUID()+"."+fileNameArr[1];
File savefile = new File(baseUrl+filePath, fileName);
if (!savefile.exists()) {
if (!savefile.getParentFile().exists()) { // 判断目标文件所在的目录是否存在
// 如果目标文件所在的文件夹不存在,则创建父文件夹
savefile.getParentFile().mkdirs();
if (!savefile.getParentFile().mkdirs()) {// 判断创建目录是否成功
System.out.println("创建目标文件所在的目录失败!");
}
}
savefile.createNewFile();
}
String paths=FileUtils.getFile(savefile).toString().replaceAll("\\\\", "/");// 转移符 "\"变成"/"
FileUtils.copyInputStreamToFile(file.getInputStream(), savefile);//保存文件
Index index=new Index();
index.setIndexId(requestMap.get("indexId").toString());
index.setRemark(paths);
int records=indexMapper.updateByPrimaryKeySelective(index);// 更新数据库地址
if(records>0){
json.setObj(index);
json.setSuccess(true);
json.setCode("200");
json.setMsg("上传成功");
}else {
json.setMsg("无更新记录");
json.setCode("300");
json.setSuccess(false);
}
return json;
}
/**
* 方法名:uploadPhoto
* 描 述:TODO(上传图片)
* 作 者:池彦龙
* 时 间:2017/04/30
* 返回类型:
* 参 数:
* 异 常:
*/
mapper 层:
public interface IndexMapper {
int updateByPrimaryKeySelective(Index record);
}
/**
* 方法名:uploadPhoto
* 描 述:TODO(上传图片)
* 作 者:池彦龙
* 时 间:2017/04/30
* 返回类型:
* 参 数:
* 异 常:
*/
XML 层:
<update id="updateByPrimaryKeySelective" parameterType="com.xch.sysManager.model.yfzs.Index">
update YFZS.XHC_TAB_SC_INDEX
<set> <if test="upIndexId != null">
UP_INDEX_ID = #{upIndexId,jdbcType=VARCHAR},
</if>
<if test="remark != null">
REMARK = #{remark,jdbcType=VARCHAR},
</if>
</set>
where INDEX_ID = #{indexId,jdbcType=VARCHAR}
SpringMVC+MyBaties关于上传(跟新)图片的问题的更多相关文章
- SpringMVC上传文件(图片)并保存到本地
SpringMVC上传文件(图片)并保存到本地 小记一波~ 基本的MVC配置就不展示了,这里给出核心代码 在spring-mvc的配置文件中写入如下配置 <bean id="multi ...
- SpringMVC学习--文件上传
简介 文件上传是web开发中常见的需求之一,springMVC将文件上传进行了集成,可以方便快捷的进行开发. springmvc中对多部件类型解析 在 页面form中提交enctype="m ...
- SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...
- SSM框架-SpringMVC 实例文件上传下载
一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+sta ...
- [转]SpringMVC单文件上传、多文件上传、文件列表显示、文件下载
一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+sta ...
- SpringMvc(四)- 下载,上传,拦截器
1.图片下载 图片下载:将服务器端的文件以流的形式写到客户端,通过浏览器保存到本地,实现下载: 1.1 图片下载步骤 1.通过session获取上下文对象(session.getServletCont ...
- dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.
http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术 ...
- ruby -- 进阶学习(四)paperclip上传中文命名图片
Paperclip -- 上传中文命名图片 使用Paperclip和ImageMagick插件来处理图片的时候,上传非中文命名的图片时,只要把配置写好就没问题 if you need to ...
- springMVC+jsp+ajax上传文件
工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method ...
随机推荐
- (转)vim编辑器操作命令大全-绝对全
周六了,熟悉熟悉vim 命令 学习链接: vim命令大全 http://blog.csdn.net/scaleqiao/article/details/45153379 vim命令小技巧 http:/ ...
- iOS中NSAttributedString的使用--对关键字着色,以及处理html实例
1,最近项目中用到了一个功能,一个很好的功能.就是用户在搜索的时候,搜索结果出来后对你输入的关键字进行红色标记.这样用户就很请楚的看到自己输入什么后会出现什么样子的结果.还有一个功能是,现在有一段文字 ...
- 类模板成员函数默认值问题:an out-of-line definition of a member of a class template cannot have default arguments
template <typename T> class A { ); }; template<typename T> ) { /* */ } 对于类似上文代码,VS编译器会报 ...
- vcenter6.5安装问题
vcenter6.5 有2个安装包1个vim (windows系统) 1个vcsa(linux) 安装vcsa遇到如下问题: 1.版本bug 网上一般找到的镜像是VMware-VCSA-all-6 ...
- CentOS \Linux 6版本系统命令及其使用详解
概述 常用的linux命令,分为文件管理.磁盘管理.用户管理.软件管理.系统管理等. 文件管理 ls命令 使用权限:所有使用者 使用方式:ls [-alrtAFR] [name...] 说明:显示指定 ...
- 1289大鱼吃小鱼(STL中栈的应用)
>>点击进入测试<< 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向 ...
- 【16】AngularJS API
AngularJS API API 意为 Application Programming Interface(应用程序编程接口). AngularJS 全局 API AngularJS 全局 API ...
- 【codeforces 707C】Pythagorean Triples
[题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...
- Java基础学习总结(81)——如何尽可能的减少Java代码中bug
Java编程语言的人气自然无需质疑,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能. 不过在编写代码时,bug永远是困扰每一位从业者的头号难题.在今天的文章中, ...
- mysql 5.5与5.6 timestamp 字段 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP的区别
http://www.111cn.net/database/mysql/55392.htm 本文章来给各位同学介绍关于mysql 5.5与5.6 timestamp 字段 DEFAULT CURREN ...