百科 教育 动画 游戏 博览 网址 金融 搜搜 资料 新闻
触屏版

close ◇ 读取数据,请稍候 Loading...

.: Welcome to flymote.com [flymot.com] :.

网页太慢?试试: 或 [ 刷新 ]




  »

◆ 其它资料:.
采用PHP的用户认证(809)
PHP实现文件安全下载(810)
PHP5对象模型深度探索 之 对象复制(811)
自动生成缩略图(814)
A class to allow you to connect to POP3 servers(815)
域名穷举算法(815)
PHP包含文件(817)
Email MimeDecode (email mime)(817)
Send emails through an smtp server(817)
MVC模式的PHP实现(818)

PHP实现文件安全下载

2005-05-23   李茂祥      阅读: 810   【本类别其它资料】 【资料库首页
上一篇 收藏 评论 打印 收藏夹 发布 下一篇

〖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-typeapplication/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Dispositionattachmentfilename=" . $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-typeapplication/octet-stream");
Header("Content-Dispositionattachmentfilename=" . $file_name);
while (!feof ($file)) { echo fread($file,50000); } 
fclose ($file); } 
这样就可以用PHP直接输出文件了。 

else
{ $query="insert into logging(user_id,logging_ip,page_name) values('$id','$ip','$page_name')"; $result=mysql_db_query("web",$query,$link); return (1); 
}
}
//end if 
}
//----------------------------end function validate-id--------- 
这个验证方法很简单,而且没有考虑到用户在登录后再登录的情况,大家可以自己加上。
如果用cookies,可能用setcookies()建立用户ID,再从环境变量$HTTP_COOKIE或$HTTP_COOKIE_VARS中读 取。都是一样的,不过应该保证用户没有cookies。
责任编辑:

【最近的搜索】:

上一篇 收藏 评论 打印 收藏夹 发布 下一篇
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
CopyRight(c) 2007 - 2017 All Rights Reserved  【赣ICP备12001042号】
触屏版 | Archiver 20180625 12:27 | 简介 | 帮助 | 留言 | 关于 | 360网站安全检测平台