个人记录:web导入文件到后台(ie8兼容)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 个人记录:web导入文件到后台(ie8兼容)

个人记录:web导入文件到后台(ie8兼容)

 2017/11/23 13:10:40  labybreath  程序员俱乐部  我要评论(0)
  • 摘要:———————————————说明———————————————返回类型为String,因为ie8的上传调用的js不支持json类型的返回通过前台处理成json类型if(d.indexOf("<pre")!=-1){d=JSON.parse(jQuery(d).text());}else{d=JSON.parse(d);}————————————————非ie8——————————————-——引用js<scriptsrc="/js/ajaxfileupload.js">
  • 标签:Web 文件 个人 兼容
———————————————说明———————————————
返回类型为String,因为ie8的上传调用的js不支持json类型的返回
通过前台处理成json类型
class="js" name="code">
if(d.indexOf("<pre")!=-1){
				        	  d = JSON.parse(jQuery(d).text());
				          }
				          else{
				        	  d = JSON.parse(d);
				          }


————————————————非ie8——————————————-——
引用js
<script src="/js/ajaxfileupload.js"></script>

前台
<input id="updatePhoneExcel" name="updatePhoneExcel" type="file">

js调用
    $.ajaxFileUpload({
	                url : '/api/nameList/statechange/getMultiInfoExcel',
	                secureuri : false,
	                fileElementId : 'updatePhoneExcel',
	                dataType : "text",
	                //data:dataJson,
	                success : function(d) {
	                	if(d.indexOf("<pre")!=-1){
				        	  d = JSON.parse(jQuery(d).text());
				          }
				          else{
				        	  d = JSON.parse(d);
				          }
	                	if(d.flag=="true"){
	                		if(d.notExistEmpIds!=""){
	                			toastr.success("导入模板数据成功!但"+d.notExistEmpIds+"不存在于名册之中");
	                		}else{
	                			if(d.notScopeEmpIds!=""){
		                			toastr.success("导入模板数据成功!但"+d.notScopeEmpIds+"不在您的管理权限范围内");
		                		}else{
		                			toastr.success("导入模板数据成功!");
		                		}
	                		}
	                		self.searchByInfo();
	                	}else{

	                		toastr.error("导入模板数据失败!");
	                	}
	                },
	                error : ajaxError,
	    			complete : function() {
	                    $("#showLoading").hideLoading();
	                }
	            });


后台
@RequiresAuthentication
@RequiresPermissions("Gbs.Extended.Edit")
@RequestMapping(value = "/getMultiInfoExcel", headers = ("content-type=multipart/*"), method = RequestMethod.POST,produces = "text/plain")
public String getMultiInfoExcel(@RequestParam("updatePhoneExcel") MultipartFile file,HttpServletRequest request, HttpServletResponse response
			,HttpSession session) throws IOException{
		Map<String, Object> returnDataMap = new HashMap<String, Object>();
		session.setAttribute("alllist",null);
		List<UploadTemplateVO> utVOs = new ArrayList<UploadTemplateVO>();
		if (!file.isEmpty()) {
			String[] allowType = { "xls", "xlsx" };
            String filename = file.getOriginalFilename();
            //解析excel文件,然后进行数据库存取
            //(1)判断文件类型
            if (filename.indexOf(".") == -1)
    			throw new IOException();
    		String type = filename.substring(filename.indexOf(".") + 1);
    		if (type.length() > 4)
    			throw new IOException();
    		Boolean typeFlag = false;
    		for (int i = 0; i < allowType.length; i++)
    		{
    			if (allowType[i].equalsIgnoreCase(type))
    			{
    				typeFlag = true;
    				break;
    			}
    		}
    		if (!typeFlag)
    			throw new IOException();

    		String realPath = "src\\main\\resources\\template\\uploadTemp";
    		String path = realPath+"\\"+filename;
    		File uploadFile = new File(path);
    		FileUtils.copyInputStreamToFile(file.getInputStream(), uploadFile);

			InputStream inStream = new FileInputStream(uploadFile);

			utVOs = readExcelService.readExcelInfo(inStream);

		} else {
			utVOs = null;
		}
		List<GbsExtendedVO> gbsExtendedVOs = gbsExtendedService.allGbsExtended();
		String notExistEmpIds  = "";
		String notScopeEmpIds  = "";
		if(utVOs!=null){
			for(int i=0;i<utVOs.size();i++){
				boolean existFlag = false;
				boolean scopeFlag = false;
				for(int j=0;j<gbsExtendedVOs.size();j++){

					if(utVOs.get(i).getEmpID().equals(gbsExtendedVOs.get(j).getEmpID())){
						GbsExtendedVO evo = gbsExtendedVOs.get(j);
						String str = findDatascopeComtains(getCurrentUserInfo().getDataScope());
						if(str.contains(evo.getEmpID()) || str.contains("1039")|| str.contains("1001")){
							evo.setTel(utVOs.get(i).getPhone());
							gbsExtendedService.updateGbsExtended2(evo);
							scopeFlag = true;
						}else{
							scopeFlag = false;
						}
						/*DataScopeValidationUtil.validateSingleDatascope(str, "orgUnitID", evo);
						evo.setTel(utVOs.get(i).getPhone());
						gbsExtendedService.updateGbsExtended2(evo);*/
						existFlag = true;
						break;
					}

				}
				if(existFlag == false){
					notExistEmpIds = notExistEmpIds + utVOs.get(i).getEmpID()+",";
				}
				if(scopeFlag == false){
					notScopeEmpIds = notScopeEmpIds + utVOs.get(i).getEmpID()+",";
				}
			}
			if(notExistEmpIds.length()>0){
				notExistEmpIds = notExistEmpIds.substring(0, notExistEmpIds.length()-1);
			}
			if(notScopeEmpIds.length()>0){
				notScopeEmpIds = notScopeEmpIds.substring(0, notScopeEmpIds.length()-1);
			}
			returnDataMap.put("notExistEmpIds", notExistEmpIds);
			returnDataMap.put("notScopeEmpIds", notScopeEmpIds);
			returnDataMap.put("flag", "true");
			return JsonUtil.beanToJson(returnDataMap);
		}
		returnDataMap.put("flag", "false");
		return JsonUtil.beanToJson(returnDataMap);
	}



—————————————————分割线 ie8———————————————————
ie8调用js和css
<link href="/vendors/uploadify/uploadify.css" rel="stylesheet">
<script src="/vendors/uploadify/jquery.uploadify.min.js"></script>

ie8调用js
        $("#updatePhoneExcel").uploadify({
		        'swf': '/vendors/uploadify/uploadify.swf',
		        'uploader': '/api/nameList/statechange/getMultiInfoExcel',
		        'fileObjName': 'updatePhoneExcel',
		        'buttonText': '请选择文件',
		        'fileTypeExts': '*.xls; *.xlsx',
		        'fileSizeLimit': '10MB',
		        'auto': false,
		        'multi': false,
		        'onUploadSuccess': function (file, data, response) {
		        	if(d.indexOf("<pre")!=-1){
			        	  d = JSON.parse(jQuery(d).text());
			          }
			          else{
			        	  d = JSON.parse(d);
			          }
		        	if(d.flag=="true"){
                		if(d.notExistEmpIds!=""){
                			toastr.success("导入模板数据成功!但"+d.notExistEmpIds+"不存在于名册之中");
                		}else{
                			if(d.notScopeEmpIds!=""){
	                			toastr.success("导入模板数据成功!但"+d.notScopeEmpIds+"不在您的管理权限范围内");
	                		}else{
	                			toastr.success("导入模板数据成功!");
	                		}
                		}
                		self.searchByInfo();

                	}else{

                		toastr.error("导入模板数据失败!");
                	}

		        },
		        'onUploadError': ajaxError,
		        //加上此句会重写onSelectError方法【需要重写的事件】
		        'overrideEvents': ['onSelectError', 'onDialogClose'],
		        //返回一个错误,选择文件的时候触发
		        'onSelectError': function (file, errorCode, errorMsg) {
		          switch (errorCode) {
		            case -110:
		              toastr.error("文件 [" + file.name + "] 大小超过300K");
		              break;
		            case -120:
		              toastr.error("文件大小异常");
		              break;
		            case -130:
		              toastr.error("文件类型不正确");
		              break;
		          }
	        	},
	     	});


//函数中调用上一个js
        if(getBrowserVersion()=='MSIE8.0'){
			    	if($("#updatePhoneExcel-queue").html()!=""){
			          	ajaxUrl = '/api/nameList/statechange/getMultiInfoExcel';
			            $("#updatePhoneExcel").uploadify('upload');
			            return;
			        }
			    }
发表评论
用户名: 匿名