0 0

求大神帮助,解决下javaExcel导出在IE8下报错5

是这样的,尽两天突然发现项目的Excel导出无法使用了,在下载时提示“无法打开Internet 站点。 请求的站点不可用”的问题。
一开始以为是应用出了问题,结果查询后得知ie9可正常下载,排除了防火墙设置问题(因为IE9可以下载,如果是防火墙的问题会全部过滤)。

 

 

由于我的excel导出没有使用poi或jxl等导出工具,是直接将Excel当成html结构进行编写,然后是用流方式直接输出,也已经在jsp页面配置了page信息<%@ page language="java" contentType="application/vnd.ms-excel;charset=GBK" pageEncoding="GBK"%>

后台的输出也进行了文件编码,并对文件名修改过英文进行测试,均无效
 
怀疑过是这种导出被IE8的某种更新过的安全协议阻止了,所以进行了测试,新建了工程,进行了测试,均能正常下载。。。怀疑过是由于服务器部署的项目采用了https的安全协议,但不太明白如何进行测试,确定是否是https在捣乱,真心求教啊!!!!!!

 

5个答案 按时间排序 按投票排序

0 0

刚刚遇到同样问题,后台,前台,都不报任何错误,就是提示在下载时提示“无法打开Internet 站点。 请求的站点不可用” 无法下载
原来我是window.open下载地址,后改成window.location.href('/ais/pa/bid/expBidProject.action?bidProjectId='+treeNode.id);
OK 了

2015年5月25日 15:30
0 0

以前做过的项目中,也使用过你的这种excel导出方式,出现“无法打开Internet 站点。 请求的站点不可用”这种问题,可能有以下几种情况:
1.反向代理网络不稳定会导致
2.如果你通过数据产生html标签时出现异常也会导致(记得好像是,需要你测试下,要根据真实环境查询条件来模拟)

2013年4月12日 11:19
0 0

    @RequestMapping(value = "/download")
    public String download(
            HttpServletRequest request, HttpServletResponse response,
            @RequestParam(value = "filename") String filename) throws Exception {


        if (StringUtils.isEmpty(filename) || filename.contains("\\.\\.")) {
            response.setContentType("text/html;charset=utf-8");
            response.getWriter().write("您下载的文件不存在!");
            return null;
        }


        filename = URLDecoder.decode(filename, "UTF-8");


        String filePath = FileUploadUtils.extractUploadDir(request) + "/" + filename;
        File file = new File(filePath);
        if (!file.exists() || !file.canRead()) {
            response.setContentType("text/html;charset=utf-8");
            response.getWriter().write("您下载的文件不存在!");
            return null;
        }

        String userAgent = request.getHeader("User-Agent");
        boolean isIE = (userAgent != null) && (userAgent.toLowerCase().indexOf("msie") != -1);


        response.reset();
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "must-revalidate, no-transform");
        response.setDateHeader("Expires", 0L);

        response.setContentType("application/x-download");
        response.setContentLength((int) file.length());

        String displayFilename = filename.substring(filename.lastIndexOf("_") + 1);
        displayFilename = displayFilename.replace(" ", "_");
        displayFilename = prefixFilename + displayFilename;
        if (isIE) {
            displayFilename = URLEncoder.encode(displayFilename, "UTF-8");
            response.setHeader("Content-Disposition", "attachment;filename=\"" + displayFilename + "\"");
        } else {
            displayFilename = new String(displayFilename.getBytes("UTF-8"), "ISO8859-1");
            response.setHeader("Content-Disposition", "attachment;filename=" + displayFilename);
        }
        byte[] buf = new byte[1024];
        int len = 0;
        BufferedInputStream is = null;
        OutputStream os = null;
        try {

            is = new BufferedInputStream(new FileInputStream(file));
            os = response.getOutputStream();
            while ((len = is.read(buf)) != -1)
                os.write(buf, 0, len);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            is.close();
        }

        return null;
    }


这是我写的文件下载的代码 在大部分浏览器测试都是没问题的  你可以改造下

2013年4月11日 15:12
0 0

IE8 F12有调试功能,应该是js出错了,你可以尝试下

2013年4月11日 14:25
0 0

你可以参考下下面的链接,看是不是与你的情况相似
http://superuser.com/questions/75340/ie-wont-open-excel-files

2013年4月11日 13:57

相关推荐

    java excel生成二维码(可以添加图标和文字).zip

    在本项目中,我们主要探讨如何使用Java技术栈,特别是SpringBoot框架,来生成包含二维码的Excel文件。这个压缩包提供了必要的代码示例,包括`qrcode.java`、`MatrixToImageWriter.java`和`LogoConfig.java`三个关键...

    java小游戏项目(求大神找bug).zip

    java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip...

    excel导出的完整代码

    此资料是excel导出的完整代码,初学者这一下下来看看,大神就不必了!!

    所见即所得-后台取指定table内容导出excel(大神出品)

    标题中的“所见即所得-后台取指定table内容导出excel”是指在Web应用程序中,用户可以在前端看到的表格(table)内容,通过后端处理,可以被精确地导出为Excel文件,实现数据的快速整理和分享。这种功能通常用于数据...

    jquery导出excel

    - 数据安全:由于直接导出数据,可能存在敏感信息泄露的风险,因此在导出前应做好数据过滤和处理。 - 文件大小:大型数据集可能会导致文件过大,影响下载速度,可能需要考虑分页或服务器端处理。 6. **示例代码**...

    大神教你玩转excel,收获高效人生

    [十点课堂]20多年的EXCEL技术精华,帮你提高工作效率,提升逻辑能力,培养创新能力,真正成为时下最抢手的高效、高能、高知型人才。 附件为下载地址,有问题请联系我!

    java上传并读取excel工具类

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据分析或者报表生成等场景。本篇文章将深入探讨如何使用Java实现Excel文件的上传和读取,重点关注`MultiFile`转换为`File`以及处理多Sheet页...

    Java Swing大神必经之路

    第8篇 Java Swing大神必经之路8:JavaSwing:JRadioButton-单选按钮 本篇文章详细介绍了 JRadioButton 的使用,包括其继承体系、构造方法和常用方法,幫助讀者更好地理解 JRadioButton 的使用。 第9篇 Java Swing...

    27天成为Java大神

    在“27天成为Java大神”的学习计划中,你将深入探索Java这门强大且广泛应用的编程语言。Java以其跨平台、面向对象和高效性等特点,在软件开发领域占据着重要地位。以下是一些关键的知识点,它们是成为Java大神的...

    mfc对Excel的导入导出和listCtrl排序

    mfc 调用微软的Excel类库对Excel数据的导入和导出。很多大神都发表关于mfc导入Excel数据的文章,但很多没有实际测试样例,学习相对吃了。自个折腾了几天,写个这个小玩意。希望对后来人的学习有帮助。再次感谢贡献...

    【视频】大神教你玩转Excel,收获高效人生-网盘下载链接提取码.txt

    20多年总结出的Excel技术精华,帮你提高工作效率,提升逻辑能力,真正成为时下最抢手的高效、高能、高知型人才,本套课程会把精华的通用技术都总结出来,不管什么行业、什么职位,这些最值得掌握的技巧,就能帮你...

    大神教你玩转Excel收获高效人生.txt

    大神教你玩转Excel收获高效人生.txt

    27天成为Java大神之Day02

    在"27天成为Java大神之Day02"的学习旅程中,我们开始深入Java的世界。这个阶段,我们将重点理解Java的基础概念,为后续的高级主题打下坚实的基础。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现...

    html导出excel,多sheet,支持不规则table。

    大神提供的,经测试没问题。

    一个大神读Thinking in Java 写下的笔记

    这是我从一位认识的大神那里要来的第一手资料,主要是他对Java面向对象的一些认识,我看了之后顿时犹如醍醐灌顶,对面向对象的思想有了深刻认识!原来以前只是学了皮毛而已。遗憾的是,这个笔记他没有写完,我只是看...

    Excel大神上分攻略视频课程-视频教程网盘链接提取码下载 .txt

    Excel大神上分攻略,大神带你了解Excel的底层逻辑、思考方式和设计规则。获取Excel的“内功”和“心法”,快速建立数据思维,练就操作必杀技,全面提升表格战斗技巧,作者为微软Office官方大师级认证 视频大小:1.7G

    视频-大神教你玩转Excel,收获高效人生.rar

    "大神教你玩转Excel,收获高效人生"这个视频教程正是为了帮助用户充分利用这个强大的电子表格工具,从而提高工作和学习的生产力。以下是一些核心知识点,通过学习这些,你可以更好地理解和应用Excel的功能: 1. **...

    27天成为Java大神之Day01

    在Java学习的旅程中,第一天通常是打基础的关键时刻。"27天成为Java大神之Day01"的课程设计旨在快速引导初学者进入Java的世界,通过高效的学习计划,逐步建立起扎实的编程基础。让我们一起来深入探讨Day01中可能涵盖...

    thinkcmf5利用phpexcle实现导出数据操作

    thinkcmf5是基于thinkPHP5开发的一款cms,操作很方便,也很容易拓展开发自己想要的功能,这个导出表格的操作,可以实现thinkCMF5的,也可以实现thinkPHP5的,操作上没有多大区别,就是注意位置和写法而已,这些适合...

Global site tag (gtag.js) - Google Analytics