php进行文件的强制下载

浏览器下载文件,例如在浏览器中可以直接打开的文件(.gif  /.txt等)。
在进行文件下载操作时,默认是通过浏览器直接打开,而不是下载保存文件。并且通过这种方法下载文件可以不暴漏下载文件所在的路径,可以在下载之前进行一系列的权限控制.
如果强制浏览器下载,有二种方案,
一是:把所有文件全部做成压缩文件等浏览器无法识别的格式,操作比较繁琐。

二是:通过php操作header,进行强制下载。

通过以下代码可以实现php强制文件下载,代码如下
 1 <?php
 2 
 3 if(isset($_GET['key']))
 4 {
 5     $filename = './test.png';
 6     if(file_exists($filename))
 7     {
 8         header ("Content-Type: application/force-download");
 9         header ('Content-Disposition: attachment;filename="'.$filename.'"');
10         readfile ($filename);
11     }
12 }
13 
14 ?>
15 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
16     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
17 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
18 <head>
19     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
20     <title>Document</title>
21 </head>
22 <body>
23     <a href="./force_download.php?key=564984w1f321fd5s6f98rf7w1re">下载png</a>
24 </body>
25 </html>


原文地址:https://www.cnblogs.com/gophper/p/4459493.html