我正在使用mPDF从 html 生成 pdf。
在我的本地主机上,pdf 成功生成到找到的目录。但不是在服务器上,虽然我已经打开了那个目录的权限。
chmod -R 0777 /mydirectory
从答案中找到 此评论fopen($file_out,'wb');
并更改为fopen($file_out,'w+');
mpdf.php
但没有成功。
谢谢你的帮助。
尽量不要修改源。相反,请恢复fopen($file_out,'wb');
并确保文件夹权限设置为0777
,就像您所做的那样。
此外,请检查您是否使用绝对路径来写入文件,而不是使用相对路径或更糟糕的 URL。
所以,
$file = "/var/www/html/mywebsite/mypdfs/myfile.pdf";
并尝试它是否有效。
祝你好运!
我收到了同样的错误信息。
对我来说,问题是我正在保存一个文件名包含无效字符的文件。
我创建了这个函数来用可用字符替换无效字符:
// 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;
}
如果其他人遇到此问题,希望这会有所帮助。我不确定反斜杠,所以我把它注释掉了。