Tom: Überprüfen, ob Datei vorhanden ist

Beitrag lesen

Hello,

Ich will überprüfen, ob die Datei, die hochgeladen wird, bereits im Verzeichnis "/usr/export/www/hosting/hgdomusik/uploads/$target_path)" vorhanden ist. Es soll verhindert werden, dass die Datei, die hochgeladen wird, die bereits vorhandene Datei ersetzt.

Dann kannst Du das mittels passendem Modus beim Öffnen einer NEUEN Datei einstellen:

$fh = fopen($dateiname, 'xb+);

siehe: http://de.php.net/manual/en/function.fopen.php

Die Funktion http://de.php.net/manual/en/function.move-uploaded-file.php gibt diese Möglichkeit nicht.

Ein vorheriges Prüfen mit file_exists() ist sachlich falsch, da Du Dir damit ein TOCTOU-Problem baust.
http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use

In einer Multiuserumgebung könnte es nämlich durchaus sein, dass sich zwischen Deine Prüfung mit file_exists() und das anschließende Kopieren des Files ein anderer Prozess gedrängelt hat, der das File ebenfalls angelegt hat. Du würdest dieses dann wieder überschreiben.

Wird nun in der DB nur der Filename für den Owner eingetragen, hat diese Datei plötzlich zwei Owner mit dem Inhalt des letzten Prozesses, der geschrieben hat.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de