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 错误:无法创建输出文件的主要内容,如果未能解决你的问题,请参考以下文章