这对我来说似乎很奇怪。我有一个动态上传的文件目录,我需要先检查权限,然后用户才能打开该文件,所以我将 htaccess 添加到目录中:
RewriteEngine On
RewriteRule ^(.*)$ ../../get_file.php [QSA]
然后我在 php 中检查权限,如果用户有权限,我正在尝试为用户提供文件,如下所示:
//serve file back to user
$full_file_name = 'uploads/conversation_attachments/'.$file_name;
$filesize = filesize($full_file_name);
header("Content-length: ".$filesize);
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$full_file_name.";");
readfile($full_file_name);
它吐回'a'文件而不是'the'文件。因此,我没有使用 $file_name="rYMmfk3j9BSrjaRC.pdf" 获取文件“rYMmfk3j9BSrjaRC.pdf”,而是得到一个名为“uploads_conversation_attachments_rYMmfk3j9BSrjaRC.pdf”的文件。不知何故,它似乎用下划线代替了斜线。
有人知道为什么会这样吗?帮助将不胜感激!