读取文件的文件下载权限被拒绝


file download permission denied to read the file

我使用php readfile函数来忽略服务器上文件的完整直接url。但是,它只显示错误,而不是下载文件,声明failed to open stream: No such file or directory in但是文件在指定的目录中。

我试图下载的文件是由用户上传的(即,我认为httpd进程,它将是所有者)。然而,下面的代码说无法打开文件-

$full_path = $row['full_path'];
            $file_name = $row['file_path'];
            header("Pragma: public");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header('Content-Type: application/pdf');
            header("Content-Type: application/force-download");
            header("Content-Disposition: attachment; filename='"".$file_name."'"");                 
            readfile($full_path);

目录的默认权限设置为755,我正在下载的文件也显示权限为755。我不明白这里的问题是什么。

编辑:服务器是hostgator。

EDIT:header("Location:$full_path")运行良好,所以我认为它与路径无关。

编辑:$full_path看起来像-uploads/abc.pdf,而$file_path看起来像abc.pdf

文件结构:

--root
  downloader.php
      ---uploads
         abc.pdf

看到我对OP的评论确实解决了这个问题。。。

我:

"var_dump();揭示了什么?确保任何地方都没有空格。我在这一点上有点困惑。Fred-ii-"

OP:

"WTF,字符串末尾有一个空白。我真的很抱歉,我从来没有检查过。感谢你们所有人……–codeomnitrix"

我:

trim()会很快解决这个问题

咨询:http://php.net/manual/en/function.trim.php