你的代码只是从 ftp 服务器将文件下载到 http 服务器
距离到用户那里,还差一大截呢

解决方案 »

  1.   

    把ftp上的文件保存到你服务器上,用户从你服务器上下载文件时浏览器会自动提示保存位置
      

  2.   

    补充楼上if (file_exists($file)) { 
        header('Content-Description: File Transfer'); 
        header('Content-Type: application/octet-stream'); 
        header('Content-Disposition: attachment; filename='.basename($file)); 
        header('Content-Transfer-Encoding: binary'); 
        header('Expires: 0'); 
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
        header('Pragma: public'); 
        header('Content-Length: ' . filesize($file)); 
        ob_clean(); 
        flush(); 
        readfile($file); 
        exit; 

      

  3.   

    楼上的方法不可行。等客户下载时再临时下载到PHP空间,花费的时间又长,损耗又大。下载文件放在PHP空间不划算。ftp空间便宜,PHP空间贵。
      

  4.   

    怎么不可行?
    你不是就用 ftp 函数下载的文件吗?再发给用户就是了
    如果你不想在php空间保存文件,那么就用 socket 以流方式一遍读一边写
    不过得要先用 ftp 函数取到文件大小