web-dev-qa-db-ja.com

TCPDFエラー:画像ファイルを開くことができません:/ var / www / html / tcpdf / cache /

データに基づいてPDFファイルを生成しているWebサイトがあります。

私は無料のウェブホストでそれを試しました、そしてそれは大丈夫です、しかし私がそれを私のサーバーにアップロードするとき、私はこのエラーを受け取ります:

TCPDFエラー:画像ファイルを開くことができません:/ var/www/html/tcpdf/cache/mska_1d34cb1ba2c1951624fbccb7556c6d1d

キャッシュフォルダにmska_1d34cb1ba2c1951624fbccb7556c6d1dがフォルダに存在しません。

10
Bert

私は今答えを得ました。

この問題に遭遇する可能性のあるすべての人にとって、これらは可能な解決策です。

1つの原因は、tcpdf内のフォルダーに書き込みと読み取りのアクセス許可がないことです。キャッシュとイメージのフォルダーに644または755(推奨)のアクセス許可があることを確認してください。これらの権限は非常に重要です。PDFを生成するときに、何かを書き込むプロセスがキャッシュであるか、画像に読み込まれるためです。

もう1つの原因は、tcpdfがpngファイルまたは透明な画像を受け入れないことです。私の解決策は、画像をjpegにして、白い背景を適用することでした。したがって、透明なpngは避けてください。

それが役に立ったことを願っています。

14
Bert

Ubuntuでは、このエラーはtcpdf/cache/フォルダーに777のアクセス許可を設定することで修正されました。

chmod 777 cache

755または775で試しましたが、機能しませんでした。

4
Edgar Ortega

推測では(そのような名前で)、それはそのフォルダに書き込もうとしています。 PHP/Apacheにそのフォルダーへの書き込み権限があることを確認してください。

また、後でそれから読み取りたいので、読み取りと書き込みのアクセス許可を与えます。

3
Robbie

フォルダーのアクセス許可を確認するというBertの推奨事項に加えて、HTTP/HTTPSの問題を確認し、自動的に正しく計算されない場合は、K_PATH_MAINサーバーパスをtcpdfフォルダーに設定できることに注意してください。 (tcpdf_config.php内)

define ('K_PATH_MAIN', '/my/absoulte/path/tcpdf/');

2
squarecandy

ライブラリフォルダTCPPDFからcacheという名前のフォルダを作成するだけです

構成フォルダー、フォント、および画像がある場合は、キャッシュフォルダーも作成し、機能しない場合は777または755のアクセス許可を付与します。

1
user2217518

この問題は、SELinuxを適用することによっても発生する可能性があります。例外を追加する必要があります。 setenforce 0で簡単にテストしてから、PDFの作成を再試行できます。

0
user3081471

ファイルの拡張子がpdf(すべて小文字)であり、PDF(すべて大文字)ではないことを確認してください。または、何らかの方法で一貫性を持たせてください。Windows/ Linuxシステム間でこの問題が発生しました。

0
Dennis

私の場合、ファイルは保護されており、TCPDFはCURL(!?!?)を使用してその画像を取得しようとしましたが、Apacheが適切なCookieを見つけられなかったため、403エラーが発生しました。

0
Bobby Tables