我试图解决我的问题几个小时,搜索谷歌和几个板,但我还没有找到解决方案。
我的问题:我构建了一个生成下载的PHP脚本。 代码如下:
$file = "file.pdf";
$download_folder = "../contents/"; //RELATIV
$type= mime_content_type($download_folder.$file);
header("Content-Type: $type");
header("Content-Disposition: attachment; filename=\"$file\"");
readfile($download_folder.$file);
如果我在我的localhost服务器(xampp)上尝试它,它可以工作并开始下载文件。如果我将脚本上传到我的托管服务器(不是自己的,它已经消失了),我只会得到一个空白页面。
有什么想法吗?谢谢!
答案 0 :(得分:0)
检查权限。 如果您对该文件具有读取权限。 您可以使用chmod命令设置权限。
答案 1 :(得分:0)
确保您已启用错误报告并在开发过程中显示所有内容:
ini_set('display_errors', 1);
error_reporting(E_ALL);
那应该告诉你问题是什么。
我的猜测是它的路径有问题。
尝试使用绝对路径,例如/var/www/vhosts/yoursite.com/httpdocs/contents/file.pdf
。
如果失败,则可能是权限问题。
答案 2 :(得分:0)
尝试添加
if (!file_exists($download_folder . $file)) {
die("can't find the file")
}
if (!is_readable($download_folder . $file)) {
die("can't read the file")
}
在进行header()
来电之前。您很可能已经上传了除此脚本预期之外的文件,或者网络服务器无法读取文件。
答案 3 :(得分:0)
发现错误。在网络服务器上不是函数mime_content_type。感谢您的帮助