Prüfen ob Datei geöffnet
ochsi
- php
Guten Tag
ich arbeite mit php und FPDF und möchte gern ein PDF erzeugen bzw. überschreiben. Ist die PDF-Datei aber bereits vorhanden und geöffnet erhalte ich natürlich die Fehlermeldung " failed to open stream: Permission denied in " wie kann ich prüfen ob die Datei offen ist?
Dann könnte ich den Nutzer meiner Applikation darauf hinweisen die Datei zu schließen und ernuert zu aktualisieren.
Der Aufruf der PDF Datei: $pdf->Output("Z:/Pagels/".$Objektdaten[7]." ".$Objektdaten[5]." Einheit ".$Objektdaten[3]."/Interessentenliste.pdf","F");
Hat jemand eine Idee?
MfG ochsi
Hi ochsi!
Hat jemand eine Idee?
file_exists überprüft, ob die Datei existiert.
fopen gibt false zurück, wenn die datei nicht geöffnet werden konnte.
MfG H☼psel
Hi ochsi!
Hat jemand eine Idee?
file_exists überprüft, ob die Datei existiert.
fopen gibt false zurück, wenn die datei nicht geöffnet werden konnte.MfG H☼psel
Leider bekomme ich nur die Fehlermeldung faild to open... wenn ich fopen nutze
und diese kann ich nicht ordentlich abfangen. Mach ich was Falsch das ich kein False erhalte?
Hi ochsi!
und diese kann ich nicht ordentlich abfangen.
Doch. Mit einem @ vor dem Funktionsaufruf unterdrückst du jegliche Fehlerausgabe. Damit sollte man aber sparsam umgehen. In deinem Fall ist es aber nötig.
Mach ich was Falsch das ich kein False erhalte?
Ich würde es so lösen:
<?php
if (file_exists('test.pdf')) // Datei existiert -> Test, ob geöffnet
if (!@fopen('test.pdf','r+')) echo 'Datei noch geöffnet!'; // Fehlermeldung ausgeben
/* Schlägt fopen nicht fehl, muss die Datei natürlich wieder geschlossen werden */
?>
Das funktioniert zumindest mit PDF-Dateien. Wichtig ist, dass das Programm welches die PDF-Dateien öffnet, diese mit einem Schreibschutz belegt. Ansonsten öffnet fopen die Datei ganz normal ohne Fehlermeldung.
Eventuell gibt es aber auch fpdf-interne Funktionen, die dir diese Überprüfung abnehmen.
MfG H☼psel
Vielen Dank für deine schnelle hilfe das mit dem @ hatte ich auch schon ausprobiert werd mich nochma ran setzten.
MfG ochsi
Thx Hopsel
Funktioniert jetzt!
MfG
ochsi