下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
软件搜索: 分类 关键字 ╃→【软件更新】每日软件更新贴㊣㊣
您的位置:首页源码精华 → php实现任何文件地点击下载 
php实现任何文件地点击下载 
日期:2006-6-3 16:58:00 人气:     [ ]
我们首先考虑的是文件上传的问题。我们设计数据库如下:
PHP代码:--------------------------------------------------------------------------------
create table attachment (
 id int unsigned not null auto_increment,
 attachment_data varchar(255) not null, /* 文件路径 */
 attachment_filename varchar(255) not null, /* 文件名 */
 attachment_details mediumtext not null, /* 文件说明 */
 attachment_size varchar(255) not null,/*文件大小*/
 primary key(id);
 ) type=InnoDB;

--------------------------------------------------------------------------------


下面这个是我做的上传一个例子:

PHP代码:--------------------------------------------------------------------------------
//upload.php
 $upload_file = $_FILES['attachment']['tmp_name'];
 if($upload_file){
 $file_size_max = 1000*1000;// 1M限制文件上传最大容量
 $attachment_size = $_FILES['attachment']['size']
 $store_dir = 自己设置一个吧; //上传文件夹
 if ($$attachment_size > $file_size_max) {
 echo "<script language=javascript>alert('上传文件超过预设置大小');history.go(-1);< /script>";
 exit;
 }elseif (!move_uploaded_file($upload_file,$store_dir.time())) {
 echo "<script language=javascript>alert('文件上传失败');history.go(-1);</script>";
 exit;
 }else{
 $attachment = array(
 "attachment_data"=>$store_dir.date("YmdHis").$_FILES['attachment']['name'],
 "attachment_filename"=>$_FILES['file']['name'],
 "attachment_details"=>$attachment_details,
 "attachment_size"=>$attachment_size;
 );
 $attachment->setAttachment($attachment_info); //生成语句,并且添加到数据库中。这里,你可以参考我以前的文章
 }
 }

--------------------------------------------------------------------------------

上面的程序中,复制了一个类似于 1103012366 的文件到上传文件夹。其实这个就是把上传文件改了一下名,把后辍去掉了。然后我们在下载页面这样写:

PHP代码:--------------------------------------------------------------------------------
//download.php
 include_once("./litou_include.inc.php");
 $attachment = new ATTACHMENT();

 $attachment_this = $attachment->getAttachment_By_ID_Type($_GET['id'],$_GET['type']);
 #前面这些程序是从数据库中检索相应的信息的,这些你完全可以做到,就不再举出实例了。

 $file_data = $attachment_this['attachment_data']; #文件下载路径
 $file_name = $attachment_this['attachment_filename']; #文件名

 if (!file_exists($file_data)) { //检查文件是否存在
 echo "<script language=javascript>alert('你下载的文件并不存在');window.location='".$_SERVER ['HTTP_REFERER']."'</script>";
 exit;
 } else {
 $FILE = fopen($file_data,"r"); // 打开文件
 Header("Content-type: application/octet-stream");
 Header("Accept-Ranges: bytes");
 Header("Accept-Length: ".filesize($file_data));
 Header("Content-Disposition: attachment; filename=" . $file_name); #下载时显示的文件名
 echo fread($file,filesize($file_data));
 fclose($file);
 exit;
 }

--------------------------------------------------------------------------------

其实原理很简单,就是一个文件输出的问题,但这样以前真的让我郁闷了一阵子,通过此程序,你可以让任何文件实现下载,而不会出现.php的文件直接打开的现像了。


出处:mumayi.net 作者:不详
评论人 评论内容摘要(共 0 条,查看完整内容) 得分 0 发表时间
 热点文章
·超星阅读器破解大全
·自己利用PHOTOSHOP制作1寸或2寸照片
·2005年最新注册机大全[中国破解联盟木蚂蚁社区收..
·ACDSee7.0 汉化破解版的正确安装方法
·精彩屏保--有你喜欢的[N种][转][精]
·激活灵感:Adobe Photoshop CS2抢先体验
·EvID4226Patch(破解SP2的链接数)
·破解收费影视网站的影片下载地址
·流光5.0使用小窍门
·六大主流防火墙正确设置技巧 
 推荐文章
·EvID4226Patch(破解SP2的链接数)
·网络尖兵破解方法
·几个比较好的网站分享
·不看后悔!一种好用的RM、RMVB转换工具 Easy Rea..
·用JQQTOOLS申请9无号码和晒号简单教程
·打造运行在U盘上的超迷你Win 98系统
·提升Windows XP启动速度(微软内部提供)(附图片..
·这样的"绿色软件"不能用
·联想内部维修资料
·在微软的wmp6.4播放器里抓图
木蚂蚁网络 版权所有 Copyright© 2001-2005 Www.MuMaYi.Net, All Rights Reserved. Powered By 木蚂蚁社区