Dennis: PHP Dateiupload

Beitrag lesen

Hi Hakan,

Problem ist der, dass wenn jemand ein Bild hochladet, dann wird überprüft, ob es dieses bild bereits gibt.

Ok. Weshalb muss dies passieren? Woher wählst du überhaupt den Dateinamen für das Bild? Nimmst du den Dateinamen, den der Client dir in $_FILES['test']['name'] übermittelt? Dann prüfst du aber hoffentlich diese Angabe auch gegen gefährliche Zeichen! Oder?

Warum speicherst du die Bilder nicht einfach unter einem zufälligen Namen bzw. unter fortlaufender ID auf dem Server?

So, ich dachte mir, Seite mit Form-Tag und Upload-Button -> Skript überprüft den Dateinamen. Datei existiert -> zurück zum Auslöser-Skript in der dem User mitgeteilt wird, dass er überschreiben kann. User sagt "überschreiben" und datei wird ge"moved". Aber dafür muss ja die Datei im Temp-Verzeichnis sein.

Ich würde hier vermutlich so vorgehen, dass ich neben dem Upload-Feld für das Bild noch eine Checkbox setzen würde „Eventuell vorhandenes Bild gleichen Namens ohne Rückfrage überschreiben”. Aber eigentlich würde ich wie oben geschrieben, den vom Client gelieferten Dateinamen nicht zur Datenspeicherung verwenden, sondern höchstens bei der Ausgabe wieder dazuschreiben, wenn es unbedingt sein muss.

Gefällt dir das alles nicht, dann wirst du nicht darum kommen, wie bereits im letzten Posting von mir vorgeschlagen, die Datei aus dem TMP-Verzeichnis von PHP in ein von dir erstelltes TMP-Verzeichnis zu kopieren, wo du die Datei vorrübergehend aufbewahrst. Um die regelmäßige Bereinigung dieses Ordners müsstest du dich dann natürlich selber kümmern.

Viele Grüße,
  ~ Dennis.

PS: Unterlasse bitte TOFU.