7

我正在使用mPDF从 html 生成 pdf。

在我的本地主机上,pdf 成功生成到找到的目录。但不是在服务器上,虽然我已经打开了那个目录的权限。

chmod -R 0777 /mydirectory

从答案中找到 此评论fopen($file_out,'wb');并更改为fopen($file_out,'w+');mpdf.php

但没有成功。

谢谢你的帮助。

4

2 回答 2

10

尽量不要修改源。相反,请恢复fopen($file_out,'wb');并确保文件夹权限设置为0777,就像您所做的那样。

此外,请检查您是否使用绝对路径来写入文件,而不是使用相对路径或更糟糕的 URL。

所以,

$file = "/var/www/html/mywebsite/mypdfs/myfile.pdf";

并尝试它是否有效。

祝你好运!

于 2014-05-22T09:21:43.273 回答
0

我收到了同样的错误信息。

对我来说,问题是我正在保存一个文件名包含无效字符的文件。

我创建了这个函数来用可用字符替换无效字符:

// Function to replace disallowed characters from file name.
function fixFileName($file_name) {
    // $file_name = str_replace("\\", "\\", $file_name);
    $file_name = str_replace("/", " ", $file_name);
    $file_name = str_replace(">", "\>", $file_name);
    $file_name = str_replace("<", "\<", $file_name);
    $file_name = str_replace("|", "\|", $file_name);
    $file_name = str_replace(":", "\:", $file_name);
    $file_name = str_replace("&", "\&", $file_name);
    $file_name = str_replace("(", "\(", $file_name);
    $file_name = str_replace(")", "\)", $file_name);
    $file_name = str_replace(";", "\;", $file_name);
    $file_name = str_replace("*", "\*", $file_name);
    $file_name = str_replace("?", "\?", $file_name);
    return $file_name;
}

如果其他人遇到此问题,希望这会有所帮助。我不确定反斜杠,所以我把它注释掉了。

于 2020-07-22T17:35:03.630 回答