PHP 5 - Dateizugriff

oliverb

Mitglied
Hallo zuammen,

ich möchte eine CSV importieren und vorher prüfen, ob diese Datei gerade neu per FTP an mich übertragen wird. Aktuell kann es nämlich passieren, dass eine nicht fertig geladene Datei importiert wird.

Kennt jemand eine Funktion in PHP mit der ich das realisieren kann?
 
Du kannst doch jeweils einen Hash von der Datei am Ursprungsort und am Zielort erstellen und die dann vergleichen. Wenn sie gleich sind, dann wurde die Datei vollständig hochgeladen, ansonsten noch nicht.
 
Ich fürchte, mit PHP-Mitteln wird das nicht zu machen sein. Zumindest nicht auf einem Linux-System. (Es scheint in gewisser Weise „Glückssache“ (?) zu sein, ob sich andere Prozesse an ein PHP-flock halten? Könnten sie das überhaupt?)

Schau dir alternativ vielleicht mal lsof an. Mit entsprechenden Rechten auf dem Server kannst du das von PHP aus aufrufen.

- https://en.wikipedia.org/wiki/Lsof
(via zum Beispiel: http://askubuntu.com/questions/1425...f-a-file-is-currently-being-written-to-by-ano)

Das ist aber eigentlich fast egal, weil dir das auch nicht garantiert, dass eine Datei vollständig hochgeladen wurde. Der Upload könnte unterbrochen worden sein.

Falls du den FTP-Server konfigurieren kannst, kannst du dort vielleicht einstellen, dass nur vollständig hochgeladene Dateien an eine bestimmte Stelle verschoben werden sollen oder so. Ich weiß nicht, ob die so was können.

Aber eigentlich brauchst du so oder so eine Strategie, mit unvollständigen Eingabedateien umzugehen, weil dir auch unvollständige Eingaben, also Dateien, die auf dem Client schon falsch sind, vollständig hochgeladen werden könnten.
 
Zuletzt bearbeitet:
Zurück