我正在使用mPDF从html生成pdf。
在我的localhost上,pdf会成功生成到找到的目录。 但不是在Server上,虽然我已经打开了该目录的权限。
chmod -R 0777 /mydirectory
从答案中找到this comment并在mpdf.php中将fopen($file_out,'wb');
更改为fopen($file_out,'w+');
但没有成功。
感谢您的帮助。
答案 0 :(得分:6)
尽量不要修改来源。相反,请恢复为fopen($file_out,'wb');
并确保将文件夹权限设置为0777
,就像您一样。
另外,检查您是否使用绝对路径来写入文件,而不是使用相对路径,甚至更糟糕的是URL。
所以,
$file = "/var/www/html/mywebsite/mypdfs/myfile.pdf";
并尝试它是否有效。
祝你好运!答案 1 :(得分: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;
}
希望这可以帮助其他人遇到此问题。我不确定反斜杠,所以我将其注释掉。