mPDF 错误:无法创建输出文件

Posted

技术标签:

【中文标题】mPDF 错误:无法创建输出文件【英文标题】:mPDF error: Unable to create output file 【发布时间】:2014-05-06 07:29:06 【问题描述】:

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

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

chmod -R 0777 /mydirectory

从答案中找到 this comment 并在 mpdf.php 中将 fopen($file_out,'wb'); 更改为 fopen($file_out,'w+');

但没有成功。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

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

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

所以,

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

试试看是否可行。

祝你好运!

【讨论】:

有同样的问题,我传递的 file_path 是绝对的。仍然遇到问题..无法创建输出文件:/var/www/path_to_my_file/my_file.pdf【参考方案2】:

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

我的问题是我保存的文件名包含无效字符。

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

// 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;

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

【讨论】:

以上是关于mPDF 错误:无法创建输出文件的主要内容,如果未能解决你的问题,请参考以下文章

mPDF 错误:一些数据已经输出到浏览器

创建更大的 pdf 时,mpdf 内存太低

无法使用 mpdf 导入 PDF

mpdf 错误地显示 ascii<115

mpdf 图像错误,找不到图像文件

mPDF 库不适用于 php7.2 codeigniter