———————————————说明———————————————
返回类型为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;
}
}
分享到:
相关推荐
在现代Web应用中,文件上传是一项常见的功能,尤其是在图片分享、文档共享等场景下。`FormData`对象是HTML5引入的一个重要特性,它允许我们创建一个包含键值对的数据结构,特别适合用来发送二进制数据,如文件,到...
6、系统界面重新进行了调整和美化,但并不能支持IE的兼容模式,请优先使用GOOGLE浏览器。 后续会继续发布新的版本,为大家提供更好的系统支持。 希望能和更多有兴趣的朋友交流与共享,也可以加入群:...
这份DWZ代码是我个人一直使用的,DWZ对各版本IE的兼容性是比较好的,我的代码在IE6下也基本能正常使用,这是一直舍不得换其它框架的主要原因。 压缩包是完整的jfinal+dwz的测试性小代码,直接导入myeclipse,运行...
- **浏览器兼容性**:不支持IE6及基于其内核的浏览器,推荐使用更新版本的浏览器。 3. **后台管理界面**: - **账户信息**:管理员可以添加、编辑员工账户,分配短信额度,发送短信,并可申请更改企业名称。 - *...
2. **导出Excel按钮事件**:点击导出时,使用axios发起GET请求,设置`responseType: 'blob'`,并在IE兼容性处理中将blob转换为文件: ```javascript exportExcel() { let params = {}; let p = this....
4. **兼容性**:Amaze UI充分考虑了各种浏览器的兼容性,包括Chrome、Firefox、Safari、IE8+等,确保在主流浏览器上稳定运行。 5. **JavaScript库集成**:虽然标签中提到了JavaScript,但Amaze UI不仅仅局限于...
3、样式和内容分离:系统主体框架div css结构,遵循国际最新W3C网页设计标准,兼容IE系列、火狐等主流浏览器,内容和样式分离让网站风格可以轻松修改和更换,而不会导致内容和结构的破坏。 4、周密的安全策略和攻击...
8. **兼容性**:eWebEditor兼容主流的浏览器,如IE、Firefox、Chrome和Safari,确保了广泛的用户覆盖。 **后台管理系统** eWebEditor的后台管理系统是一个至关重要的组件,允许管理员进行以下操作: - **配置编辑...
操作员只能查看,导出,导入,生成,防伪码数据,所有功能可根据用户需要个性化定制,系统兼容所有浏览器,IE7、IE8、IE9、Chrome、Firefox、360等浏览器,不必担心出现浏览器兼容导致的使用问题. 安装说明:1. 安装...
1. **美食导入标准.csv**:这是一个CSV(逗号分隔值)文件,可能用于批量导入餐厅的菜品信息。餐厅管理员可以使用这种格式的数据文件来快速更新菜单,包括菜品名称、价格、描述、图片链接等信息,便于系统管理和展示...
- 浏览器:IE6及以上版本,或其他兼容的浏览器。 - **安装IIS**:安装Internet Information Services (IIS) 作为Web服务器,以便TD可以运行在Web环境中。 #### 3. TD的安装过程 - **TD8.0安装**:按照官方指南...
运行这个文件,它将在后台启动一个服务器,使得Selenium WebDriver可以通过网络接口与IE浏览器通信。为了在自动化测试中使用这个驱动,你需要将其路径添加到系统环境变量`PATH`中,或者在Selenium代码中指定其完整...
- 兼容性:在主流浏览器上表现良好,包括Chrome、Firefox、Safari和IE8+。 - API接口:提供丰富的API接口,方便开发者进行二次开发和扩展。 3. **后台管理系统的构建**: - 权限控制:通常,后台系统会包含权限...
IE7、IE8、IE9、Chrome、Firefox、360等浏览器,不必担心出现浏览器兼容导致的使用问题. 安装说明: 1. 安装IIS,mssql2008数据库和.net框架(.NET Framework)4.0 2. 建网站目录,把src中文件复制到目录下面 ...
- **IE7.0兼容性**: TestDirector 8.0默认不支持IE7.0浏览器。解决方法是在服务器TDBIN/目录下的start_a.htm文件中添加代码以提高兼容性。具体操作为:在"var fMSIE3456"行末尾添加"|| (ua.lastIndexOf('MSIE 7.0')...
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、 缓存技术完美解决服务器压力负荷:为...