强制下载和htaccess =零字节文件

时间:2012-06-04 20:06:25

标签: php .htaccess

我试图拒绝访问我服务器上的文件夹,其中有文件只能通过php脚本下载。 php脚本用于强制下载文件,就像那样:

  function downloadFile($file){
        $file_name = $file;
        $mime = 'application/force-download';
        header('Pragma: public');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Cache-Control: private',false);
        header('Content-Type: '.$mime);
        header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
        header('Content-Transfer-Encoding: binary');
        header('Content-Length: '.filesize($file_name));    // provide file size
        header('Connection: close');
        readfile($file_name);
        exit();
    }

htaccess必须只提供对localhost的访问权限:

order deny,allow
deny from all
allow from 127.0.0.1

但每次脚本下载一个具有相同名称的零字节文件,而不是完整的文件。但是,当我删除htaccess时,一切都很好..我无法弄清楚错误在哪里。 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

问题是readfile();需要机器上文件的绝对路径而不是网址。

e.g。 /home/person/file.exe