PHP实现文件安全下载 - 我爱贝贝 - 金东浩官方网站 - welcome to old.bbmy.net

PHP实现文件安全下载 [金东浩官方网站版权所有]

2006年12月31日 | Category: » | by: 贝爸 | 本文包含金东浩PHP实现文件安全下载照片

你一定会笑我"下载文件"如此简单都值得说?当然并不是想象那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用 "Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下:

$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"
// 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream"

Header("Accept-Ranges: bytes"

Header("Accept-Length: ".filesize($file_dir . $file_name)

Header("Content-Disposition: attachment; filename=" . $file_name

// 输出文件内容
echo fread($file,filesize($file_dir . $file_name)

fclose($file

exit;}


而如果文件路径是"http" 或者 "ftp" 网址的话,则源代码会有少许改变,程序如下:

$file_name = "info_check.exe";
$file_dir = "http://www.easycn.net/";
$file = @ fopen($file_dir . $file_name,"r"

if (!$file) {
echo "文件找不到";
} else {
Header("Content-type: application/octet-stream"

Header("Content-Disposition: attachment; filename=" . $file_name

while (!feof ($file)) {
echo fread($file,50000

}
fclose ($file

}

这样就可以用PHP直接输出文件了。

本文来自 我爱贝贝[www.bbmy.net]-金东浩官方网站,如若转载注明出处。


金东浩博客随机日志
金东浩博客之爱劳动的小贝
爱劳动的小贝
金东浩博客之新买的口水巾
新买的口水巾
金东浩博客之爱上《大哥》
爱上《大哥》
金东浩博客之狼外婆
狼外婆
金东浩博客之钓鱼
钓鱼
金东浩博客之一病七日
一病七日
金东浩博客之小病初愈后的笑容
小病初愈后的笑容
金东浩博客之背影
背影
金东浩博客之自已吃饭
自已吃饭
金东浩博客之踏春
踏春
金东浩博客之儿童沙包
儿童沙包
金东浩博客之学会晒鞋
学会晒鞋
金东浩博客之喝奶的更高要求
喝奶的更高要求
金东浩博客之音乐喷泉
音乐喷泉
金东浩博客之打预防针
打预防针
金东浩博客之一周岁抓周
一周岁抓周
金东浩博客之一周岁生日
一周岁生日
金东浩博客之小贝出生啦
小贝出生啦

金东浩日记Tags:
金东浩日记评论: 0 | 金东浩日记引用: 0 | 金东浩日记阅读: 2448
发表评论
昵称 [注册]        网址
密码 游客无需密码     电邮
打开HTML 打开UBB 打开表情 隐藏 记住我