2011-02-16 59 views
0

我试图解决我的问题几个小时,并搜索谷歌和几个主板,但我还没有找到解决方案。PHP:Readfile在localhost中工作,但不在服务器上

我的问题:我建立了一个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)它的工作原理和文件的下载开始。如果我将脚本上传到我的托管服务器(不是自己的,它已经没有了),我只会得到一个空白页面。

任何想法?谢谢!

回答

0

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

0

确保你有错误报告开启和发展过程中显示的所有内容:

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

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

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

如果失败,那么它可能是一个权限问题。

+0

好主意!服务器上不存在MIME类型函数。现在它可以工作 – ikonos 2011-02-16 19:06:56

0

尝试做header()调用之前添加

if (!file_exists($download_folder . $file)) { 
    die("can't find the file") 
} 
if (!is_readable($download_folder . $file)) { 
    die("can't read the file") 
} 

。很有可能你已经上传了文件,而不是这个脚本所期望的位置,或者Web服务器不可读。

0

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

相关问题