我想做个php简单的下载功能,因为是初学,摸索了好长时间,网上的代码不成功,谁能给个完成的代码啊,谢谢啊。

解决方案 »

  1.   

    header 类型读 file
     echo 就这几步了
      

  2.   

    这个一点也不简单  哈哈
    直接link过去就下载了 比如 http://www.yourdomain.com/dl/you_want_to_DL_fileName.txt
      

  3.   


    function download($filename){
    $timestamp=time();
    ob_end_clean();
    header('Last-Modified: '.gmdate('D, d M Y H:i:s',$timestamp+86400).' GMT');
    header('Cache-control: max-age=86400');
    header('Expires: '.gmdate('D, d M Y H:i:s',$timestamp+86400).' GMT');
    header('Content-Encoding: none');
    $basename = basename($filename);
    $fileext  = substr(strrchr($basename,'.'),1);
    $filesize = filesize($filename);
    if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')!==false && $fileext=='torrent' ){
    $attachment='inline';
    } else{
    $attachment='attachment';
    }
    header('Content-Disposition: '.$attachment.'; filename='.$basename);
    header('Content-type: '.$fileext);
    $filesize && header('Content-Length: '.$filesize);
    readfile($filename);
    exit;
    }
      

  4.   

    去 http://www.w3school.com.cn/ 哪里的东西好多!
      

  5.   

    function download($filename){
        $timestamp=time();
        ob_end_clean();
        header('Last-Modified: '.gmdate('D, d M Y H:i:s',$timestamp+86400).' GMT');
        header('Cache-control: max-age=86400');
        header('Expires: '.gmdate('D, d M Y H:i:s',$timestamp+86400).' GMT');
        header('Content-Encoding: none');
        $basename = basename($filename);
        $fileext  = substr(strrchr($basename,'.'),1);
        $filesize = filesize($filename);
        if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')!==false && $fileext=='torrent' ){
            $attachment='inline';
        } else{
            $attachment='attachment';
        }
        header('Content-Disposition: '.$attachment.'; filename='.$basename);
        header('Content-type: '.$fileext);
        $filesize && header('Content-Length: '.$filesize);
        readfile($filename);
        exit;
    }
      

  6.   

    最简单的
    验证登陆之后
    echo 一个字符串,你的下载文件地址。
    验证不通过,不echo.
      

  7.   

    最简单的方式,可以不用header,
    在服务器端把东东打包成rar文件,然后给“下载”加个相对路径的超链接,你点击他试试,保准能将这个rar文件下载下来
      

  8.   

    下载功能可以不用PHP,做个文件的链接就可以了,
    点击之后浏览器自动弹出下载窗口,除了图片,图片是直接显示在浏览器里
      

  9.   

    <?php
    $filename=$_GET["filename"];
    if (!file_exists($filename)) {
    echo $filename;
      error_log("Error: file " . $file_path . " not found!", 0);  
      exit;  
    }  
    $filesize=filesize($filename);
    $fp = fopen($filename, 'rb');
    header("Content-Type:text/plain");  
    header("Accept-Ranges:bytes");  
    header("Accept-Length:".filesize($filename));  
    header("Content-Disposition:attachment;filename=".basename($filename));  
      
    flock($fp, 2);
    $attachment = @fread($fp, $filesize); 
    echo $attachment;
    fclose($fp);  ?>
    你传一个文件名过去就可以了
      

  10.   

    恩,lvxia0102说的对,
    但这个我写了,实现不了,说文件找不到,不知道怎么回事,才问的,这是我的代码,帮我看看:<html>
    <head></head>
    <body>
    <?php
    $file_name='SheepWar2.rar';
    $file_dir='\\10.0.40.108\d$\EAins';
    $file_dir = $file_dir."/";
    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();
    }
    ?>
    </body>
    </html>