浏览器下载文件,例如在浏览器中可以直接打开的文件(.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>