phpbar.de logo

Mailinglisten-Archive

[php] upload von Datein/Bildern erlauben ohne verwechslungsgefahr

[php] upload von Datein/Bildern erlauben ohne verwechslungsgefahr

Alexander Skwar php_(at)_phpcenter.de
Wed, 13 Jun 2001 07:11:41 +0200


So sprach Stefan am Wed, Jun 13, 2001 at 12:54:55AM +0200:
> sp=E4etr zum downlaod anbieten will oder =E4hnliches. Was gibt es noch f=
=FCr
> Verwechslungsfreie Methoden ?

Einen eindeutigen Verzeichnisnamen mit 'tempnam' generieren lassen, und die
Datei da hinein kopieren.  Dadurch hst Du dann zwar in jedem dieser
Verzeichnisse nur 1 Datei, und die Verzeichnisnamen sehen reichlich
'unsch=F6n' aus - aber der Dateiname bleibt intakt.  Du m=FC=DFtest dann al=
so
sowohl den Verzeichnisnamen, als auch den Dateinamen Dir merken.

Also, quasi so:

<?php

$dir_name =3D tempnam('/var/www/html/dateien', 'UPLOAD');
// PHP >=3D 4.0.3 erzeugt auch eine Datei bei tempnam - l=F6schen und Fehler
// ignorieren
_(at)_unlink($dir_name);
mkdir($dir_name, 0701);
// $dest mu=DF in Datenbank gespeichert werden
$dest =3D $dir_name . '/' . $HTTP_POST_FILES['datei']['name'];
move_uploaded_file($HTTP_POST_FILES['datei']['tmp_name'], $dest);

?>

-> http://php.net/manual/en/function.tempnam.php

Hierbei hast Du allerdings das Problem, das es eine extrem kurze Zeitspanne
zwischen Befehl 2 und Befehl 3 gibt, in der jemand anderes das Verzeichnis
mit dem gleichen Namen erzeugen *k=F6nnte* - f=FCr realistisch halte ich das
Problem aber nicht...

Alexander Skwar
--=20
How to quote:	http://learn.to/quote (german) http://quote.6x.to (english)
Homepage:	http://www.digitalprojects.com   |   http://www.iso-top.de
   iso-top.de - Die g=FCnstige Art an Linux Distributionen zu kommen
		Uptime: 8 hours 8 minutes


php::bar PHP Wiki   -   Listenarchive