服务端对下载文件的处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rocklee/article/details/88706682

1/可能你会遇到下载了文件但还有空白网页留在那的问题, 这时候的解决方法是,在网页里面定义一个隐藏的iframe, 然后href或window.open时指定target为这个iframe的名字,如:

<iframe name="download" style="display: none;"></iframe>
<script>
function downloadAtc(p){
	  //console.log(p);
	  window.open("./pms719?action=downAtc&recid="+p,"download","toolbar=0,menubar=0");
}
</script>

1/如果想要浏览器无论什么文件类型都要下载而不是让浏览器在线打开,那么要注意这些header的参数了:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-disposition: attachment;filename="ATC_B15M12666353K3050032.xls"
Pragma: public
Cache-Control: max-age=0
Content-Type: application/octet-stream
Content-Length: 33792
Date: Thu, 21 Mar 2019 01:11:40 GMT

Content-disposition,必须为attachment,而且要指定文件名.

Content-Type,指定为application/octet-stream

   若希望浏览器识别一下文件内容有可能的话在线打开, 那么应该将Content-disposition里面的attachment改为inline, 将Content-Type的值改为文件类型, 比如application/excel

猜你喜欢

转载自blog.csdn.net/rocklee/article/details/88706682