[小技巧]提交数据并下载文件的实现方式
在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,既不会弹出新窗口,下载万一失败也不影响当前页面.