[小技巧]提交数据并下载文件的实现方式

在web开发中,经常会碰到数据已经在页面中显示,但又要下载Excel格式的报表的情形

显示在服务器重新计算一次比较耗时,这些一般会把页面上的数据post到服务器,服务器产生二进制的excel响应流然后发送给服务器端

1.方法一:

<form id="form2" action="/download.ashx" method="post" target="_self">
<input name="id" type="hidden" value="1" />
<input type="submit" value="iframe submit" />
</form>

这种方法一般情况下不会出问题,但如果服务器处理数据失败,整个页面就会显示异常信息。可以把target改为_blank,这样弹出新窗口处理,无论如何不会影响原页面

 

2.方法二:

<form id="form2" action="/download.ashx" method="post" target="iframe1">
<input name="id" type="hidden" value="1" />
<input type="submit" value="iframe submit" />
</form>

<iframe name="iframe1" frameborder="0" src="" style="display:none"></iframe>

用了掩藏的iframe,既不会弹出新窗口,下载万一失败也不影响当前页面.

posted @ 2012-08-22 10:59  ahui  阅读(330)  评论(1编辑  收藏  举报