我正在尝试强制链接以将文件下载为附件。这是我以前做过的事情,但是出了点问题,我不确定是什么。我尝试作为附件发送的文件类型都是 mp4 文件。这是我正在做的事情:
<?php
if(isset($_GET['file']))
{
$file_path = dirname(__FILE__) . "/videos/$_GET[file]";
if(file_exists($file_path))
{
$file_url = "/videos/$_GET[file]";
header ("Content-type: video/mp4");
header("Content-Transfer-Encoding: binary");
header("Content-disposition: attachment; filename=\"".basename($_GET['file']) ."\"");
header("Content-Length: ".filesize($file_path));
echo readfile($file_url);
}
}
?>
如您所见,我正在检查文件是否存在,然后再尝试提供它。发生的情况是我得到了文件,它的类型是正确的(MP4 视频),但文件的大小只有 100 字节左右。在调试时,我测试了文件大小是否正确,是的。我已将readfile()
行更改为:
header("location:/videos/$_GET[file]");
它带我去看视频。我已经做了很多谷歌搜索,但我没有想出这种行为的原因。有没有人见过这种类型的东西?关于可能导致这种情况的任何想法?任何帮助将不胜感激,非常感谢!