求大神帮助图片助

求大神帮助,解决下javaExcel导出在IE8下报错 - ITeye问答
是这样的,尽两天突然发现项目的Excel导出无法使用了,在下载时提示“无法打开Internet 站点。 请求的站点不可用”的问题。一开始以为是应用出了问题,结果查询后得知ie9可正常下载,排除了防火墙设置问题(因为IE9可以下载,如果是防火墙的问题会全部过滤)。
由于我的excel导出没有使用poi或jxl等导出工具,是直接将Excel当成html结构进行编写,然后是用流方式直接输出,也已经在jsp页面配置了page信息&%@ page language="java" contentType="application/vnd.ms-charset=GBK" pageEncoding="GBK"%&后台的输出也进行了文件编码,并对文件名修改过英文进行测试,均无效
怀疑过是这种导出被IE8的某种更新过的安全协议阻止了,所以进行了测试,新建了工程,进行了测试,均能正常下载。。。怀疑过是由于服务器部署的项目采用了https的安全协议,但不太明白如何进行测试,确定是否是https在捣乱,真心求教啊!!!!!!
刚刚遇到同样问题,后台,前台,都不报任何错误,就是提示在下载时提示“无法打开Internet 站点。 请求的站点不可用” 无法下载
原来我是window.open下载地址,后改成window.location.href('/ais/pa/bid/expBidProject.action?bidProjectId='+treeNode.id);
以前做过的项目中,也使用过你的这种excel导出方式,出现“无法打开Internet 站点。 请求的站点不可用”这种问题,可能有以下几种情况:
1.反向代理网络不稳定会导致
2.如果你通过数据产生html标签时出现异常也会导致(记得好像是,需要你测试下,要根据真实环境查询条件来模拟)
@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/charset=utf-8");
response.getWriter().write("您下载的文件不存在!");
filename = URLDecoder.decode(filename, "UTF-8");
String filePath = FileUploadUtils.extractUploadDir(request) + "/" +
File file = new File(filePath);
if (!file.exists() || !file.canRead()) {
response.setContentType("text/charset=utf-8");
response.getWriter().write("您下载的文件不存在!");
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 + displayF
if (isIE) {
displayFilename = URLEncoder.encode(displayFilename, "UTF-8");
response.setHeader("Content-Disposition", "filename=\"" + displayFilename + "\"");
displayFilename = new String(displayFilename.getBytes("UTF-8"), "ISO8859-1");
response.setHeader("Content-Disposition", "filename=" + displayFilename);
byte[] buf = new byte[1024];
int len = 0;
BufferedInputStream is =
OutputStream os =
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();
这是我写的文件下载的代码 在大部分浏览器测试都是没问题的& 你可以改造下
IE8 F12有调试功能,应该是js出错了,你可以尝试下
你可以参考下下面的链接,看是不是与你的情况相似
/questions/75340/ie-wont-open-excel-files
已解决问题
未解决问题

我要回帖

更多关于 大神图片大全 的文章

 

随机推荐