Ich habe eine Website, die eine PDF-Datei basierend auf Daten generiert.
Ich habe es in einem kostenlosen Webhost versucht und es ist in Ordnung, aber wenn ich es auf meinen Server hochlade, bekomme ich diesen Fehler:
TCPDF FEHLER: Bilddatei kann nicht geöffnet werden: / var / www / html / tcpdf / cache / mska_1d34cb1ba2c1951624fbccb7556c6d1d
im Cache-Ordner ist die Mska_1d34cb1ba2c1951624fbccb7556c6d1d nicht im Ordner vorhanden.
Ich habe jetzt die Antwort.
Für alle, die in der Lage sein werden, auf dieses Problem zu stoßen, sind dies die möglichen Lösungen.
Eine Ursache ist, dass Ordner in tcpdf keine Schreib- und Leseberechtigungen haben. Stellen Sie sicher, dass der Ordner für Cache und Bilder die Berechtigung 644 oder 755 (empfohlen) hat. Diese Erlaubnis ist sehr wichtig, weil es einen Prozess gibt, wenn man PDF erzeugt, schreibt man etwas in den Cache oder liest man Bilder ein.
Eine weitere Ursache ist, dass tcpdf keine PNG-Datei oder transparente Bilder akzeptiert. Meine Lösung bestand darin, das Bild zu einem JPEG zu machen und einen weißen Hintergrund dafür zu erstellen. Vermeiden Sie daher png mit transparent.
hoffe es hat geholfen.
In Ubuntu wurde dieser Fehler behoben, indem 777 Berechtigungen für den Ordner tcpdf/cache/
festgelegt wurden:
Ich habe es mit 755 oder 775 versucht und nicht funktioniert.
Zusätzlich zu Berts Empfehlung, die Ordnerberechtigungen zu überprüfen, sollten Sie nach HTTP / HTTPS-Problemen suchen und beachten, dass Sie den K_PATH_MAIN-Serverpfad zum tcpdf-Ordner festlegen können, wenn er nicht automatisch korrekt berechnet wird. (in tcpdf_config.php)
define ('K_PATH_MAIN', '/my/absoulte/path/tcpdf/');
Erstellen Sie einfach einen Ordner namens cache aus den Bibliotheksordnern TCPPDF
wo gibt es Config-Ordner, Schriftarten und Bilder, erstellen Sie auch einen Cache-Ordner und geben Sie die Erlaubnis 777 oder 755, wenn nicht funktionieren.
Dieses Problem kann auch durch das Erzwingen von SELinux verursacht werden. Eine Ausnahme muss hinzugefügt werden. Kann einfach mit setenforce 0 getestet werden und dann erneut versuchen, die PDF zu erstellen.
In meinem Fall war die Datei geschützt und TCPDF versuchte, dieses Bild mit CURL (!?!?) zu bekommen, und es wurde ein 403 Fehler angezeigt, weil Apache den richtigen Cookie nicht gefunden hat.
Ich ersetzte die URL Ссылка mit dem absoluten Pfad des Bildes /home/image/img1.jpg