データに基づいてPDFファイルを生成しているWebサイトがあります。
私は無料のウェブホストでそれを試しました、そしてそれは大丈夫です、しかし私がそれを私のサーバーにアップロードするとき、私はこのエラーを受け取ります:
TCPDFエラー:画像ファイルを開くことができません:/ var/www/html/tcpdf/cache/mska_1d34cb1ba2c1951624fbccb7556c6d1d
キャッシュフォルダにmska_1d34cb1ba2c1951624fbccb7556c6d1dがフォルダに存在しません。
私は今答えを得ました。
この問題に遭遇する可能性のあるすべての人にとって、これらは可能な解決策です。
1つの原因は、tcpdf内のフォルダーに書き込みと読み取りのアクセス許可がないことです。キャッシュとイメージのフォルダーに644または755(推奨)のアクセス許可があることを確認してください。これらの権限は非常に重要です。PDFを生成するときに、何かを書き込むプロセスがキャッシュであるか、画像に読み込まれるためです。
もう1つの原因は、tcpdfがpngファイルまたは透明な画像を受け入れないことです。私の解決策は、画像をjpegにして、白い背景を適用することでした。したがって、透明なpngは避けてください。
それが役に立ったことを願っています。
Ubuntuでは、このエラーはtcpdf/cache/
フォルダーに777のアクセス許可を設定することで修正されました。
chmod 777 cache
755または775で試しましたが、機能しませんでした。
推測では(そのような名前で)、それはそのフォルダに書き込もうとしています。 PHP/Apacheにそのフォルダーへの書き込み権限があることを確認してください。
また、後でそれから読み取りたいので、読み取りと書き込みのアクセス許可を与えます。
フォルダーのアクセス許可を確認するというBertの推奨事項に加えて、HTTP/HTTPSの問題を確認し、自動的に正しく計算されない場合は、K_PATH_MAINサーバーパスをtcpdfフォルダーに設定できることに注意してください。 (tcpdf_config.php内)
define ('K_PATH_MAIN', '/my/absoulte/path/tcpdf/');
ライブラリフォルダTCPPDFからcacheという名前のフォルダを作成するだけです
構成フォルダー、フォント、および画像がある場合は、キャッシュフォルダーも作成し、機能しない場合は777または755のアクセス許可を付与します。
この問題は、SELinuxを適用することによっても発生する可能性があります。例外を追加する必要があります。 setenforce 0で簡単にテストしてから、PDFの作成を再試行できます。
ファイルの拡張子がpdf(すべて小文字)であり、PDF(すべて大文字)ではないことを確認してください。または、何らかの方法で一貫性を持たせてください。Windows/ Linuxシステム間でこの問題が発生しました。
私の場合、ファイルは保護されており、TCPDFはCURL(!?!?)を使用してその画像を取得しようとしましたが、Apacheが適切なCookieを見つけられなかったため、403エラーが発生しました。