1. 云栖社区>
  2. PHP教程>
  3. 正文

php如何实现对各种文件下载

作者:用户 来源:互联网 时间:2017-12-01 14:31:25

php文件下载如何

php如何实现对各种文件下载 - 摘要: 本文讲的是php如何实现对各种文件下载, 如果我们仅使用<a href='文件路径/文件名'>下载</a>或者js的window.location = '文件路径/文件名',且文件类型为浏览器能识别的,那么浏览器将会直接打开文件而不是弹出下载框下载文件,比

如果我们仅使用<a href='文件路径/文件名'>下载</a>或者js的window.location = '文件路径/文件名',且文件类型为浏览器能识别的,那么浏览器将会直接打开文件而不是弹出下载框下载文件,比如'.txt','.conf','.bin'文件等。当然js的document.execCommand('SaveAs','mycodes.txt')(第二个参数为要保存为的文件名)也能实现下载,但它兼容性不好,firefox下无效。这时如果你的环境支持php语言,那么你可以用header()来实现文件下载:

先看简单实例:

同目录下有两个文件index.php,test.php与供下载文件adam.txt:

test.php文件内容:

<?php

$filename = $filename = 'adam.txt';
echo "<a href='index.php?filename=".$filename."'>下载</a>";

?>

index.php文件内容:

<?php

$filename = $_REQUEST['filename'];

header("Content-Type:text/plain");
header('Content-Disposition:attachment;filename='.$filename);
header('Content-Transfer-Encodeing: binary');
readfile($filename);

?>

当你打开test.php并单击下载时将实现对adam.txt文件的下载。

同理,我们也可以实现对.jpg,.zip,.rar,.pdf等文件实现下载,这时只需把index.php中的header("Content-Type:text/plain")稍做修改,比如下面所示

header("Content-Type:application/zip");//zip或者rar

header("Content-Type:application/pdf");//pdf

header("Content-Type:image/jpeg");//图片

header("Content-Type:audio/mpeg");


摘自 adamboy

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 文件下载 如何 ,以便于您获取更多的相关知识。