uploadify上传插件

jsp页面代码
$("#uploadify").uploadify({  
			 'swf' : "${pageContext.request.contextPath}/static/js/uploadify/uploadify.swf",
			  'uploader'  : '${pageContext.request.contextPath}/document/uploadFile',
			  'queueId' : "fileQueue",
			  'queueSizeLimit' : 100,//限制上传文件的数量
			  'fileTypeDesc'   : '压缩文件',    //可选择文件类型说明  
			  'auto'  : false,
			  'removeCompleted':true,
			  "removeTimeout": 0,
			  'fileSizeLimit':307200,//上传文件大小
			  'multi'  : true,//是否允许多文件上传
			  'method'   :'post',
			  'width'     : '65',  //按钮宽度    
	          'height'    : '18',  //按钮高度  
			  'simUploadLimit': 1,//同时运行上传的进程数量
			  'buttonText': "选择文件",
			  'fileObjName' : 'uploadFile',
			  'onFallback':function(){      
	                alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");      
	            },  
	            'onUploadStart' : function(file) {
	            	$("#uploadify").uploadify("settings", "formData", {'id' : $("#updateDocId").val(),"docTitle": $("#docTitle").val(),"docTag":$('#docTag').combobox('getText'),"imgNum":imgs});   
	            },
	            'onQueueComplete' : function (queueData){
	            	
            		//tag += 1;
            		//$.messager.alert("通知","上传成功"+queueData.uploadsSuccessful +"上传失败"+queueData.uploadsErrored,"info" );
            		//关闭对话框
            		closeFileUploadWindow();
            		//刷新数据
            		//调用子页面的方法,刷新doclist
					myFrame.window.flushData()
					//调用队列上传成功后的方法
					uploadSuccess();
					//清空缓存中后台传的错误信息
					errorMsg = "";
					//清空缓存中后台传的成功信息
					successMsg = "";
					//上传文件总数赋初值
					imgs=0;
	            },
	            'onUploadSuccess' : function(file, data, response){
	            	if(data.indexOf("flag") >= 0){
	            		  uploadComplete++;
          			  }
          			  if(data.indexOf("msg") >= 0 && data.indexOf("flag") < 0){
        				  errorMsg += "错误文件名:"+file.name +",错误信息:"+ data.substring(data.indexOf("msg")+4,data.length-1)+";";
        			  }
	            },
	            'onSelect':function(file){
	            	//每选择一个文件就会触发 
	            	imgs++;
	            },
	           'onCancel':function(file){
	        	   imgs--;
	           },
		    }); 


上传完成后调用的方法

function uploadSuccess(){
		if(errorMsg != "" ){
			//alert("imgs"+imgs+",uploadComplete"+uploadComplete)
			$.messager.alert("上传异常","上传失败"+(imgs-uploadComplete)+"文件,"+errorMsg);
			uploadComplete=0;
		}
	}


后台接收方法

/**
	 * 新增文件或更新文件,根据有没有传文件ID值来区分
	 * @return
	 */
	@RequestMapping(value = "/uploadFile",   method = RequestMethod.POST)
	@Log(name="上传资料",model="资料管理",log="上传资料",field="上传资料,Text,无")
	public void uploadFile(@RequestParam("uploadFile") CommonsMultipartFile file,HttpServletResponse  response,HttpServletRequest request) {
		//文档更新与添加的公共代码
		response.setContentType("application/json; charset=UTF-8");
		Map<String, String> map = new HashMap<String, String>();
		String docTitle = request.getParameter("docTitle");
		String docTag = request.getParameter("docTag");
		String fileName = file.getOriginalFilename();
		String isPush =request.getParameter("isPush");
		String[] split = fileName.split("\\.");
......略


uplodify在火狐浏览器中会出现异常,原因是不能自动上传session,我用的是3.2.1版本,搜了很多天,网上都是在上传路径后面加一个jsessionid,但我的加过之后还是不行,花费了我很长时间,中间又换了其它的上传插件,webuploader,但这个插件不好用,上传按钮的焦点很难获取,上传个文件都费劲,所以又换回来了。查各种资料,最后突然灵光一现,想到了是我的拦截器搞的鬼,禁用之后果然好了。项目中用的是shiro框架,代码如下:


<!-- Shiro Filter -->
	<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
		<property name="securityManager" ref="securityManagerCas" />
		<property name="loginUrl" value="/admin/index" />
		<property name="successUrl" value="/" />
		<property name="unauthorizedUrl" value="/error/403.jsp"/>
		<property name="filters">
           <util:map>
                <entry key="forceLogout" value-ref="forceLogoutFilter"/>
                <entry key="loginFilter" value-ref="loginFilter"/>
            </util:map>
        </property>
		<property name="filterChainDefinitions">
			<value>
                /static/** = anon
                /admin/index = anon
                /user/toLogins = anon	<!-- 后台管理页面登录  -->
                /user/login = anon		<!-- app端登录 -->
                /user/getVimg = anon	<!-- web获取验证码图片 -->
                /document/uploadFile = anon <!-- 解决uploadify插件火狐不兼容的问题,不拦截该请求 -->
				/** = loginFilter,authc,forceLogout
				/logout = logout
			</value>
		</property>
	</bean>


至此问题解决
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值