MpdfException IMAGE Error () : 解析图像文件时出错 - Yii2
MpdfException IMAGE Error () : Error parsing image file - Yii2
我陷入了非常尴尬的境地,在生成 PDF 时图像在本地环境中显示。但是,不在生产中。 使用 mPDF 生成 PDF 时图像显示为 [X]。
在 Controller 中插入 $mpdf->showImageErrors = true;
之后。
public function actionExportCasesPdf($id) {
.
.
.
.
$mpdf = new \mPDF();
$mpdf->showImageErrors = true;
$mpdf->WriteHTML($output);
$mpdf->Output($fileName, 'D');
}
错误
MpdfException
IMAGE Error (..17.jpg): Error parsing image file - image type not
recognised, and not supported by GD imagecreate
甚至,GD库是使用apt-get install php5-gd
命令安装在服务器上的。并且,图片路径也使用正确。
我试图保持图片来源不变。但是,运气不好。
<img src="<?= \yii\helpers\Url::to('@web/images/logo.png', true) ?>" width="100" alt="logo" />
我搜索并尝试了这些链接给出的解决方案。但是,仍然没有运气 :
- Images not showing on production but they do on local environment - GitHub
- mPDF 5.7.1 - image displays as a broken [x]
- Generated picture in mpdf
- Error parsing image file
任何 help/hint/suggestion 都是可观的。
很有可能图片无法通过生成的 URL 用于 MPDF。
让我们尝试调试它 :) 运行 以下代码在本地和 prod 环境中
$imageUrl = \yii\helpers\Url::to('@web/images/logo.png', true);
$image = file_get_contents($imageUrl);
echo (new \finfo())->buffer($image);
// echo $image;
// ^^ uncomment, if previous line echoed something not image-related.
// Maybe, you've got 404 error
它抛出一个新的错误
failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized
因此,问题是:服务器已使用密码保护。因此,我搜索它以找到方法。并且,File-get-contents failed to open stream Unauthorized 有与上述错误相关的正确答案。
http://user_name:password@your_site.com/append_your_url
如上附加 user name
、password
和 site name
后,它工作正常。
相关搜索
- Images not showing on production but they do on local environment - GitHub
- mPDF 5.7.1 - image displays as a broken [x]
- Generated picture in mpdf
- Error parsing image file
mpdf 在生成 pdf 时未获取透明图像,因此请确保您的图像不是透明的。
它在我的本地主机上工作,但 aws 服务器有问题。
除了aws,它工作正常。
Gd 库不允许解析透明图像。
如果您在服务器上使用 cpanel,请转到防盗链并激活 允许直接请求(例如,当您在浏览器中输入图像的 URL 时).
但您的隐私政策必须允许
screenshot form this section
我陷入了非常尴尬的境地,在生成 PDF 时图像在本地环境中显示。但是,不在生产中。 使用 mPDF 生成 PDF 时图像显示为 [X]。
在 Controller 中插入 $mpdf->showImageErrors = true;
之后。
public function actionExportCasesPdf($id) {
.
.
.
.
$mpdf = new \mPDF();
$mpdf->showImageErrors = true;
$mpdf->WriteHTML($output);
$mpdf->Output($fileName, 'D');
}
错误
MpdfException
IMAGE Error (..17.jpg): Error parsing image file - image type not recognised, and not supported by GD imagecreate
甚至,GD库是使用apt-get install php5-gd
命令安装在服务器上的。并且,图片路径也使用正确。
我试图保持图片来源不变。但是,运气不好。
<img src="<?= \yii\helpers\Url::to('@web/images/logo.png', true) ?>" width="100" alt="logo" />
我搜索并尝试了这些链接给出的解决方案。但是,仍然没有运气 :
- Images not showing on production but they do on local environment - GitHub
- mPDF 5.7.1 - image displays as a broken [x]
- Generated picture in mpdf
- Error parsing image file
任何 help/hint/suggestion 都是可观的。
很有可能图片无法通过生成的 URL 用于 MPDF。 让我们尝试调试它 :) 运行 以下代码在本地和 prod 环境中
$imageUrl = \yii\helpers\Url::to('@web/images/logo.png', true);
$image = file_get_contents($imageUrl);
echo (new \finfo())->buffer($image);
// echo $image;
// ^^ uncomment, if previous line echoed something not image-related.
// Maybe, you've got 404 error
它抛出一个新的错误
failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized
因此,问题是:服务器已使用密码保护。因此,我搜索它以找到方法。并且,File-get-contents failed to open stream Unauthorized 有与上述错误相关的正确答案。
http://user_name:password@your_site.com/append_your_url
如上附加 user name
、password
和 site name
后,它工作正常。
相关搜索
- Images not showing on production but they do on local environment - GitHub
- mPDF 5.7.1 - image displays as a broken [x]
- Generated picture in mpdf
- Error parsing image file
mpdf 在生成 pdf 时未获取透明图像,因此请确保您的图像不是透明的。
它在我的本地主机上工作,但 aws 服务器有问题。 除了aws,它工作正常。 Gd 库不允许解析透明图像。
如果您在服务器上使用 cpanel,请转到防盗链并激活 允许直接请求(例如,当您在浏览器中输入图像的 URL 时). 但您的隐私政策必须允许 screenshot form this section