灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4256回复:0

php如何实现对各种件下载

楼主#
更多 发布于:2012-09-12 06:48


如果我们仅使用<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:p_w_upload;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");




喜欢0 评分0
游客

返回顶部