导出Excel文件到iframe子页面中下载时的一个怪异问题

今天在项目中碰到一个很怪异的问题,弄了我一上午,都没找到问题原因所在。

项目需要作一个统计功能,统计查询条件在一个父页面中,而统计结果呈现在一个IFRAME子页面中,并且需要在这个子页面中提供一个导出统计结果为EXCEL文件的链接。现在的问题是,点击这个链接下载完文件后,再作第二次统计时,IFRAME子页面就无法呈现新的统计结果,始终停留在前一次统计的页面。

当前使用的下载组件是jspsmartupload的。于是我创建一个简单的JSP页面,在页面中获取需要下载的EXCEL文件路径,并调用SmartUpload的downloadFile方法将文件下载下来。由于我机器上装了迅雷下载工具,所以每次点击这个下载链接时,迅雷都会弹出来,由于是在公司局域网内,我一般都是点击取消,然后用IE自己下载。

找了很久,一直没找到原因,但使用一个权宜之策可以解决这个问题,那就是将下载链接加一个target="_blank"的属性。新的链接如下:

<html:link href="<%=request.getAttribute("excelUrl")%>" target="_blank">导出Excel</html:link>

于是点击该链接后,将弹出一个新的空页面,再从这个空页面中弹出下载对话框。这样作了之后,再回到统计页面进行第二次统计,新的统计结果就能够呈现出来。只是用户需要多作一个关闭空页面的操作。

问题是解决了,但心里总觉得不爽,于是和同事交流了一下,他说可能是输出流被重定向了,叫我在另一台机器上测试一下。我也就死马当活马医,跑到另一台机器测了一下,竟然发现没有出现这个问题!!左对比,右对比,两台机器的下载过程就一个地方不同,那就是这台新机器没装迅雷,所以点击下载链接时,不会弹出迅雷下载的对话框!原来罪魁祸首是迅雷!!我无语。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值