24小时热门版块排行榜    

查看: 416  |  回复: 3
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

pigliu

捐助贵宾 (正式写手)

[交流] PHP怎么实现文件下载?

比如我给别人下载一个txt文件。

点一下按钮,就弹出下载框下载,而不是直接显示内容。。。怎么实现?

就像小木虫下载代理的那些txt文件

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bathy

新虫 (初入文坛)

回楼上~~根本无此必要~~防止人家知道下载地址普通的弹出窗口就已经可以防范普通用户,不普通的用户你只要允许IE下载就没有办法不让人家知道,IE的下载窗口句柄自己就可以给出原始下载地址
要想隐藏,目前唯一的办法就是动态地址技术,举个简单的例子
程序给出IE的地址是:"http://hahaha.com/2006-09-23-03:31-onlycopy/haha.exe"
下一分钟的下载地址:"http://hahaha.com/2006-09-23-03:32-onlycopy/haha.exe"
只有这个原理行得通,也就是必须要在服务器端取得权限,若连接别人的网站~~基本上LZ就死心吧~网上现成的软件都一大堆,更不要说安装过VC++带的debugger了~
4楼2006-09-24 03:40:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

cad_0

木虫 (著名写手)

玛雅城的小石头

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
pigliu(金币+5):谢谢
pigliu(金币+15):知道答案了,分都给你了,呵呵
如果只是普通的文件下载,完全没有必要用到php,用个http://xx.xx.com/xx.tar@#>就可以,但是有的时候为让文件保密,只能给一部分人下载,显然不能够把链节告诉别人,如果是这样哪就起不到保密的效果。
下面这个函数就是一个用php写的文件下载的函数,它是把文件一段一段地读出来,再传送给客户端.

function download($file_dir,$file_name)
//参数说明:
//file_dir:文件所在目录
//file_name:文件名
{
    $file_dir = chop($file_dir);//去掉路径中多余的空格
    //得出要下载的文件的路径
    if($file_dir != @#@#)
    {
        $file_path = $file_dir;
        if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != @#/@#)
            $file_path .= @#/@#;
        $file_path .= $file_name;
    }            
    else
        $file_path = $file_name;   
   
    //判断要下载的文件是否存在
    if(!file_exists($file_path))
    {
        echo @#对不起,你要下载的文件不存在。@#;
        return false;
    }

    $file_size = filesize($file_path);

    header("Content-type: application/octet-stream";
    header("Accept-Ranges: bytes";
    header("Accept-Length: $file_size";
    header("Content-Disposition: attachment; filename=".$file_name);
   
    $fp = fopen($file_path,"r";
    $buffer_size = 1024;
    $cur_pos = 0;
   
    while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)
    {
        $buffer = fread($fp,$buffer_size);
        echo $buffer;
        $cur_pos += $buffer_size;
    }
   
    $buffer = fread($fp,$file_size-$cur_pos);
    echo $buffer;
    fclose($fp);
    return true;

}
2楼2006-09-23 18:07:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pigliu

捐助贵宾 (正式写手)

其实我意思是这样,点一个按钮,
php连接数据库,把资料写入一个txt文件,然后这个文件不直接在ie显示,而是打开下载框给别人下载
3楼2006-09-23 20:09:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂 +3 yunziaaaaa 2026-03-01 3/150 2026-03-01 21:45 by 王兆江
[基金申请] 成果系统访问量大,请一小时后再尝试。---NSFC啥时候好哦,已经两天这样了 +3 NSFC2026我来了 2026-02-28 3/150 2026-03-01 21:41 by autumntian
[考研] 材料学硕318求调剂 +9 February_Feb 2026-03-01 11/550 2026-03-01 19:47 by 无懈可击111
[考研] 材料学调剂 +9 提神豆沙包 2026-02-28 11/550 2026-03-01 18:15 by ms629
[考博] 26申博 +4 想申博! 2026-02-26 6/300 2026-03-01 17:32 by 想申博!
[考研] 290求调剂 +9 材料专硕调剂; 2026-02-28 11/550 2026-03-01 17:21 by sunny81
[考研] 0856材料求调剂 +4 麻辣鱿鱼 2026-02-28 4/200 2026-03-01 16:51 by caszguilin
[考研] 化工专硕342,一志愿大连理工大学,求调剂 +3 kyf化工 2026-02-28 4/200 2026-03-01 16:49 by yywzz
[考研] 285求调剂 +8 满头大汗的学生 2026-02-28 8/400 2026-03-01 16:47 by caszguilin
[考研] 313求调剂 +3 水流年lc 2026-02-28 3/150 2026-03-01 16:01 by 新能源达人
[考研] 311求调剂 +6 亭亭亭01 2026-03-01 6/300 2026-03-01 15:41 by 324616
[考研] 材料工程274求调剂 +3 Lilithan 2026-03-01 3/150 2026-03-01 14:58 by ms629
[考研] 303求调剂 +4 今夏不夏 2026-03-01 4/200 2026-03-01 14:46 by 嘟嘟小浣熊
[考研] 求调剂 +6 repeatt?t 2026-02-28 6/300 2026-03-01 14:37 by Sakura绘
[考研] 298求调剂 +9 人间唯你是清欢 2026-02-28 12/600 2026-03-01 14:23 by Ducount.Y
[考研] 寻找调剂 +4 LYidhsjabdj 2026-02-28 4/200 2026-03-01 10:56 by sunny81
[考博] 博士自荐 +4 kkluvs 2026-02-28 4/200 2026-03-01 10:19 by 馥安馥安
[论文投稿] 求助coordination chemistry reviews 的写作模板 10+3 ljplijiapeng 2026-02-27 4/200 2026-03-01 09:07 by babero
[考研] 085600材料工程一志愿中科大总分312求调剂 +8 吃宵夜1 2026-02-28 10/500 2026-02-28 20:27 by L135790
[高分子] 求环氧树脂研发1名 +3 孙xc 2026-02-25 11/550 2026-02-28 16:57 by ichall
信息提示
请填处理意见