<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="shiro" uri="http://www.springside.org.cn/tags/shiro" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>批量上传</title>
<link href="${ctx}/static/js/uploadify/uploadify.css" rel="stylesheet" type="text/css" />
<script src="${ctx}/static/js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="${ctx}/static/js/uploadify/jquery.uploadify.min.js"></script>
</head>
<body style="margin: 0px;height:1500px;width:100%;">
<a class="task_btn_upload" href="javascript:$(‘#file_upload‘).uploadify(‘upload‘,‘*‘)">开始上传</a>
<a class="task_btn_upload" href="javascript:$(‘#file_upload‘).uploadify(‘cancel‘,‘*‘)">取消上传</a>
<input type="file" name="file_upload" id="file_upload"/>
<%--<input type="text" name="id" id="id"/>--%>
<div id="custom-queue"></div>
<script>
$(function() {
$("#file_upload").uploadify({
‘auto‘:false, //是否允许自动上传
‘swf‘ : ‘${ctx}/static/js/uploadify/uploadify.swf?var=‘+(new Date()).getTime(), //引入flash
‘buttonText‘:‘浏览‘, //设置button文字
‘removeCompleted‘: true,//是否移除掉队列中已经完成上传的文件。false为不移除
‘removeTimeout‘: 3,//设置上传完成后删除掉文件的延迟时间,默认为3秒。
‘width ‘:‘120‘, //按钮宽度
‘method‘:‘PSOT‘, //提交方式
‘multi‘:‘true‘, //是否多文件上传
‘fileObjName‘ : ‘myFile‘, //文件对象名称,用于后台获取文件对象时使用
‘preventCaching‘:‘true‘, //防止浏览器缓存
‘formData‘:{‘emergencyId‘:1111}, //动态传参
‘queueID‘: ‘custom-queue‘, //显示在某个div的位置 custom-queue div的id
‘fileSizeLimit‘: 0,
‘uploader‘ : ‘${ctx}/measure/upload;jsessionid=<%=session.getId()%>‘ , //提交后台方法路径
//onUploadStart 动态传参的关键
‘onUploadStart‘:function(){
$("#file_upload").uploadify("settings","formData",
{‘emergencyId‘: $("#id").val()});
},
‘onFallback‘ : function() {//检测FLASH失败调用
alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");
},
‘onUploadSuccess‘:function(file, data, response){
var Data = eval(‘(‘+data+‘)‘);
// alert(file.name+"上传"+Data.result);
},
onError: function(event, queueID, file)
{
alert(file.name + " 上传失败");
},
‘onQueueComplete‘:function(stats) {
//版本不一样方法也存在差异
alert("成功上传的文件数:" + stats.uploadsSuccessful + " =上传出错的文件数:" +stats.uploadsErrored + " -上传的文件总大小:" + stats.uploadSize);
// cancel();
}
});
});
</script>
</body>
</html>
<!-- SpringMVC上传文件时,需配置MultipartResolver处理器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 指定所上传文件的总大小不能超过800KB......注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<!--<property name="maxUploadSize" value="10485760"/>-->
</bean>
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String upload(HttpServletResponse response,HttpServletRequest request) throws IOException {
String responseStr="";
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
// 文件保存路径 ctxPath本地路径
String ctxPath=uploadPath;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
String ymd = sdf.format(new Date());
ctxPath += File.separator + ymd + File.separator;
System.out.println("ctxpath="+ctxPath);
// 创建文件夹
File file = new File(ctxPath);
if (!file.exists()) {
file.mkdirs();
}
String fileName = null;
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 上传文件
MultipartFile mf = entity.getValue();
fileName = mf.getOriginalFilename();//获取原文件名
System.out.println("filename="+fileName);
File uploadFile = new File(ctxPath + fileName);
try {
FileCopyUtils.copy(mf.getBytes(), uploadFile);
responseStr="上传成功";
} catch (IOException e) {
responseStr="上传失败";
e.printStackTrace();
}
}
return responseStr;
}
原文:http://www.cnblogs.com/yaoyao66123/p/6429438.html