`
labybreath
  • 浏览: 3220 次
社区版块
存档分类
最新评论

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

阅读更多
———————————————说明———————————————
返回类型为String,因为ie8的上传调用的js不支持json类型的返回
通过前台处理成json类型
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;
			        }
			    }
分享到:
评论

相关推荐

    FormData实现文件上传(前端+后端)

    在现代Web应用中,文件上传是一项常见的功能,尤其是在图片分享、文档共享等场景下。`FormData`对象是HTML5引入的一个重要特性,它允许我们创建一个包含键值对的数据结构,特别适合用来发送二进制数据,如文件,到...

    walker-web后台管理系统,一个基于java的完整应用

    6、系统界面重新进行了调整和美化,但并不能支持IE的兼容模式,请优先使用GOOGLE浏览器。 后续会继续发布新的版本,为大家提供更好的系统支持。 希望能和更多有兴趣的朋友交流与共享,也可以加入群:...

    dwz完美整合ztree,kindeditor,My97DatePicker

    这份DWZ代码是我个人一直使用的,DWZ对各版本IE的兼容性是比较好的,我的代码在IE6下也基本能正常使用,这是一直舍不得换其它框架的主要原因。 压缩包是完整的jfinal+dwz的测试性小代码,直接导入myeclipse,运行...

    web操作手册V1.0.docx

    - **浏览器兼容性**:不支持IE6及基于其内核的浏览器,推荐使用更新版本的浏览器。 3. **后台管理界面**: - **账户信息**:管理员可以添加、编辑员工账户,分配短信额度,发送短信,并可申请更改企业名称。 - *...

    Vue+axios+WebApi+NPOI导出Excel文件实例方法

    2. **导出Excel按钮事件**:点击导出时,使用axios发起GET请求,设置`responseType: 'blob'`,并在IE兼容性处理中将blob转换为文件: ```javascript exportExcel() { let params = {}; let p = this....

    UI后台模板

    4. **兼容性**:Amaze UI充分考虑了各种浏览器的兼容性,包括Chrome、Firefox、Safari、IE8+等,确保在主流浏览器上稳定运行。 5. **JavaScript库集成**:虽然标签中提到了JavaScript,但Amaze UI不仅仅局限于...

    580Web网站管理系统 v2.0.zip

    3、样式和内容分离:系统主体框架div css结构,遵循国际最新W3C网页设计标准,兼容IE系列、火狐等主流浏览器,内容和样式分离让网站风格可以轻松修改和更换,而不会导致内容和结构的破坏。 4、周密的安全策略和攻击...

    eWebEditor 4.4 for asp.net 带后台管理

    8. **兼容性**:eWebEditor兼容主流的浏览器,如IE、Firefox、Chrome和Safari,确保了广泛的用户覆盖。 **后台管理系统** eWebEditor的后台管理系统是一个至关重要的组件,允许管理员进行以下操作: - **配置编辑...

    龙威产品防伪查询系统 v1.2

    操作员只能查看,导出,导入,生成,防伪码数据,所有功能可根据用户需要个性化定制,系统兼容所有浏览器,IE7、IE8、IE9、Chrome、Firefox、360等浏览器,不必担心出现浏览器兼容导致的使用问题. 安装说明:1. 安装...

    订餐系统网站

    1. **美食导入标准.csv**:这是一个CSV(逗号分隔值)文件,可能用于批量导入餐厅的菜品信息。餐厅管理员可以使用这种格式的数据文件来快速更新菜单,包括菜品名称、价格、描述、图片链接等信息,便于系统管理和展示...

    TD操作手册

    - 浏览器:IE6及以上版本,或其他兼容的浏览器。 - **安装IIS**:安装Internet Information Services (IIS) 作为Web服务器,以便TD可以运行在Web环境中。 #### 3. TD的安装过程 - **TD8.0安装**:按照官方指南...

    IEDriverServer_Win32_2.41.0

    运行这个文件,它将在后台启动一个服务器,使得Selenium WebDriver可以通过网络接口与IE浏览器通信。为了在自动化测试中使用这个驱动,你需要将其路径添加到系统环境变量`PATH`中,或者在Selenium代码中指定其完整...

    thinkphp5 + layer admin

    - 兼容性:在主流浏览器上表现良好,包括Chrome、Firefox、Safari和IE8+。 - API接口:提供丰富的API接口,方便开发者进行二次开发和扩展。 3. **后台管理系统的构建**: - 权限控制:通常,后台系统会包含权限...

    龙威产品防伪查询系统 v1.2.zip

    IE7、IE8、IE9、Chrome、Firefox、360等浏览器,不必担心出现浏览器兼容导致的使用问题. 安装说明: 1. 安装IIS,mssql2008数据库和.net框架(.NET Framework)4.0 2. 建网站目录,把src中文件复制到目录下面 ...

    TestDirector+8[1].0安装配置手册.pdf

    - **IE7.0兼容性**: TestDirector 8.0默认不支持IE7.0浏览器。解决方法是在服务器TDBIN/目录下的start_a.htm文件中添加代码以提高兼容性。具体操作为:在"var fMSIE3456"行末尾添加"|| (ua.lastIndexOf('MSIE 7.0')...

    学校学生选课管理系统 SchoolStudentsChoose.rar

    a.WEB兼容.(ie9+,google,firefox…) b.支持手机端与微信端。 兼容浏览器:IE9+ FireFox, Safari, Chrome and more. 软件视频:http://edu.25175.com 2、本套软件适合于各个学校学生选课管理系统。没有复杂的操作...

    工作易人才招聘系统源码

    11、 最大化兼容各种浏览器:页面最大化采用div+css结构排版,并且兼容IE6/7/8、FireFox、Opear、Safari等各种浏览器效果。让页面在任何环境下保持最佳状态,体现专业性。 12、 缓存技术完美解决服务器压力负荷:为...

Global site tag (gtag.js) - Google Analytics