0

我试图解决我的问题几个小时并搜索谷歌和几个板,但我还没有找到解决方案。

我的问题:我构建了一个 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);

如果我在我的本地主机服务器(xampp)上尝试它,它可以工作并且文件的下载开始。如果我将脚本上传到我的托管服务器(不是自己的,它已经消失了),我只会得到一个空白页。

有任何想法吗?谢谢!

4

4 回答 4

0

发现了错误。在网络服务器上不是功能 mime_content_type 。感谢您的帮助

于 2011-02-16T19:06:14.570 回答
0

检查权限。如果您对该文件具有读取权限。您可以使用 chmod 命令设置权限。

于 2011-02-16T18:48:34.810 回答
0

确保您已打开错误报告并在开发过程中显示所有内容:

ini_set('display_errors', 1);
error_reporting(E_ALL);

这应该告诉你问题是什么。

我的猜测是路径有问题。尝试使用绝对路径,例如/var/www/vhosts/yoursite.com/httpdocs/contents/file.pdf.

如果失败,则可能是权限问题。

于 2011-02-16T18:49:05.860 回答
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()打电话之前。很可能您已将文件上传到该脚本预期的位置以外的位置,或者网络服务器无法读取该文件。

于 2011-02-16T18:49:26.967 回答