springmvc附件上传核心代码
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 指定所上传文件的总大小不能超过80M......注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="80000000" />
</bean>
public String uploadFile(HttpServletRequest request,
HttpServletResponse response) {
if(request instanceof MultipartHttpServletRequest){
MultipartHttpServletRequest multiReq=(MultipartHttpServletRequest) request;
String orderNum=request.getParameter("orderNum");
String fileType=request.getParameter("fileType");
Map<String, List<MultipartFile>> fileMap=multiReq.getMultiFileMap();
if(fileMap.size()>0){
for(String key:fileMap.keySet()){
List<MultipartFile> list=fileMap.get(key);
if(!list.isEmpty()){
for(int i=0;i<list.size();i++){
MultipartFile webFile= list.get(i);
String channel="web";
String uri=key+".uri";
String uripath=UploadPropertyConfigurer.getProperty(uri);
String realpath=UploadPropertyConfigurer.getProperty("image.realuri")+uripath;
String virtualpath=UploadPropertyConfigurer.getProperty("image.url")+uripath;
String fileName=webFile.getOriginalFilename();
LOGGER.info("filename:"+fileName);
Date date=new Date();
try {
if(fileName.contains(".")){
String [] s=fileName.split("\\.");
fileName=orderNum+"_"+new Date().getTime()+"."+s[1];
}
FileUtils.copyInputStreamToFile(webFile.getInputStream(), new File(realpath, fileName));
OrderFileupload record=new OrderFileupload();
record.setOrderNum(orderNum);
record.setFileuri(virtualpath);
record.setFileType(key);
record.setFilename(fileName);
record.setCreateDate(date);
record.setUploadChannel(channel);
record.setUploadUser("admin");
orderFileuploadMapper.insert(record);
LOGGER.info("上传成功,orderNum:"+orderNum+",fileType:"+request.getParameter("uri")+",fileName:"+fileName);
OrderFileuploadExample example=new OrderFileuploadExample();
example.or().andOrderNumEqualTo(orderNum);
List<OrderFileupload> listfile=orderFileuploadMapper.selectByExample(example);
Map<String,List<String>> map=new HashMap<String,List<String>>();
String ip= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();
for(int j=0;j<listfile.size();j++){
OrderFileupload file=listfile.get(j);
if(map.containsKey(file.getFileType())){
map.get(file.getFileType()).add(ip+file.getFileuri()+"/"+file.getFilename());
}else{
List<String> lists=new ArrayList<String>();
lists.add(ip+file.getFileuri()+"/"+file.getFilename());
map.put(file.getFileType(), lists);
} }
ResultDto dto=new ResultDto();
dto.setResultCode(Constant.CODE_ENUM.SUCCESS.code);
dto.setResultDetail(map);
return om.writeValueAsString(dto);
} catch (Exception e) {
File file=new File(realpath, fileName);
if(file.exists()){
FileUtils.deleteQuietly(file);
}
OrderFileuploadExample example=new OrderFileuploadExample();
example.or().andCreateDateEqualTo(date).andOrderNumEqualTo(orderNum);
orderFileuploadMapper.deleteByExample(example);
LOGGER.error("上传异常:",e);
continue;
}
}
}
}
}
LOGGER.info("上传失败,orderNum:"+orderNum+",fileType:"+request.getParameter("uri"));
return "0";
}
return "1"; }
springmvc附件上传核心代码的更多相关文章
- [html5+java]文件异步读取及上传核心代码
html5+java 文件异步读取及上传关键代码段 功能: 1.多文件文件拖拽上传,file input 多文件选择 2.html5 File Api 异步FormData,blob上传,图片显示 3 ...
- Springmvc file多附件上传 显示 删除操作
之前项目需求要做一个多附件上传 并显示上传文件 带删除操作 一筹莫展之际搜到某个兄弟发的博客感觉非常好用被我copy下来了此贴算是改良版 再次感谢(忘记叫什么了时间也有点久没有历史记录了)先上图 基于 ...
- java 附件上传、下载前后端代码
前言:业务需要:附件上传,需要同时满足浏览器上传,和APP上传附件,并且浏览器端不可使用form表单提交,因为表单提交无法直接获取返回值,除非刷新页面才可显示上传的附件.所以此处使用ajaxfileu ...
- 阶段3 3.SpringMVC·_05.文件上传_4 文件上传之Springmvc方式上传代码
后台提供新的方法,上传的方法复制一份传统上传的代码.改名为fileupload2 配置解析器 名字必须叫做myltipartResolver 里面可以配置一些属性,例如上传文件的大小等. 文件大小 最 ...
- 使用plupload做一个类似qq邮箱附件上传的效果
公司项目中使用的框架是springmvc+hibernate+spring,目前需要做一个类似qq邮箱附件上传的功能,暂时只是上传小类型的附件 处理过程和解决方案都需要添加附件,处理过程和解决方案都可 ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
- asp.net结合uploadify实现多附件上传
1.说明 uploadify是一款优秀jQuery插件,主要功能是批量上传文件.大多数同学对多附件上传感到棘手,现将asp.net结合uploadfiy如何实现批量上传附件给大家讲解一下,有什么不对的 ...
- 基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随笔<Web开发中的文件上传组件uploadify的使用>中可以看到,Asp.NET中 ...
- 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径
本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...
随机推荐
- Swift语言iOS8的蓝牙Bluetooth解析
开发中央步骤: 1.添加CoreBluetooth.framework框架到你的工程 2.继承两个协议:CBCentralManagerDelegate和CBPeripheralDelegate 个人 ...
- for循环计算某个数的阶乘、阶乘和及其倒数的阶乘和
//4的阶乘 int jc = 4; //定义一个变量用来代表要计算的数值 long jd =1; //定义最终输出的阶乘 for(int i = 1; i <= jc;i++) //定义循环加 ...
- input 输入验证
js验证输入框内容 只能输入英文 只能输入英文 无法粘贴,右键不会弹出粘贴菜单 只能输入数字: 只能输入数字,小数点: 只能输入数字,小数点,下划线: 只能输入英文和数字: 只能输入汉字: 禁止输入法 ...
- nginx install lua module
#install luajit #http://luajit.org/download.html .tar.gz cd LuaJIT- make install PREFIX=/home/allen. ...
- 戏说Java多线程
戏说Java多线程. package com.cmp.chengfu.app.jdk6.desktop; import java.awt.Desktop; import java.io.File; i ...
- mysql查询结果写入文件
注:转自csdn zuyi532 方法1: shell> mysql -uroot -proot -h localhost xxx库 -e " select * from xxx表 l ...
- SQL1-(增删改查、常用函数)
USE flowershopdb --全球唯一标识符(GUID UUID) SELECT NEWID() --增删改查 --INSERT [INTO] <表名> [列名] VALUES & ...
- Android 常用动画小结
1. 渐入动画 // Request the next activity transition (here starting a new one). startActivity(new Intent( ...
- pyhton
http://panda.www.net.cn/cgi-bin/check.cgi?area_domain= http://whois.chinaz.com/ beautifulsoup4 impor ...
- 记录.net 中的常见术语
--Entity Framework和NHibernate --EF和NH都是一种ORM技术.就是对象关系模型映射. --NHibernate和Entity Framework 4.0优劣势争论 -- ...