【问题标题】:FPDF error: Unable to create output fileFPDF 错误:无法创建输出文件
【发布时间】:2018-07-12 02:46:04
【问题描述】:

我正面临 PHP 上传脚本的这个奇怪问题。希望得到一些人的帮助。

下面是这个问题的详细说明:

DOCUMENT_ROOT 是“/var/www/html”

PHP 可以正常上传到名为“/var/www/html/uploads”的文件夹

在“/var/www/html/folder”有另一个目录托管不同的网页 相同的 PHP upload.sh 脚本无法将文件上传到“/var/www/html/directory/folder”目录。

“/var/www/html/directory/folder”和“/var/www/html/uploads”的文件夹权限已设置为 0777 两个文件夹使用相同的上传脚本。

以下值在两个文件夹中的upload.php 中设置。

$uploads = $_SERVER['DOCUMENT_ROOT'] . "folder/uploads/files/"

我尝试在 $uploads 中设置绝对路径如下,但没有成功:

$upload_dir = "/var/www/html/files/"

上传失败并出现以下错误:

Message: fopen(var/www/html/folder/uploads/files/filename.pdf): failed to open stream: No such file or directory
FPDF error: Unable to create output file:(/var/www/html/folder/uploads/files/filename.pdf)

知道为什么服务器不允许upload.php从“/var/www/html/folder”写入“/var/www/html/folder/uploads/”目录。

在任何日志文件中都找不到相关消息。

================================================ ===============

PHP 无法在 /var/www/html/folder/uploads/files/ 中 mkdir。

创建目录的一段代码是:

  $uploadPath = "folder/uploads/files/";
  $dir = $_SERVER['DOCUMENT_ROOT'] . $uploadPath;

    if (!is_dir($dir)) @mkdir($dir, 0777);
    return $uploadPath;

知道为什么上面的 mkdir 代码不能这样做吗?

谢谢。

【问题讨论】:

  • 可能是这样,但您正在尝试写入/打开不同的文件夹,即/var/www/html/folder/uploads/ --- var/www/html/folder/uploads/files/
  • 您好杰夫,谢谢您的回复。它是一个子目录,并且也已授予 777 权限。我只是不明白为什么它不能在 /var/www/html/folder/uploads/ 中创建文件。

标签: php


【解决方案1】:

确保在运行脚本时文件 /var/www/html/folder/uploads/files/filename.pdf 未在任何地方打开。如果它在其他地方打开,则 TCPDF 无法打开它。

【讨论】:

    【解决方案2】:

    对于那些面临类似问题的人,我的问题在添加递归标志后得到了解决。我的 mkdir 命令更改如下:

    发件人:

    if (!is_dir($dir)) @mkdir($dir, 0777);
    

    收件人:

    if (!is_dir($dir)) @mkdir($dir, 0777, true);
    

    【讨论】:

      猜你喜欢
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 2020-05-15
      相关资源
      最近更新 更多