Mailinglisten-Archive |
Moin, ----- Original Message ----- From: "Jo Schneider" <mail_(at)_joschneider.de> To: <php_(at)_phpcenter.de> Sent: Wednesday, March 06, 2002 5:26 PM Subject: [php] Problem mit Dateiupload > Hallo zusammen! > > bei mir endet das Script immer bei "die". Was mache ich falsch? > > > Viele Grüße! > > der Jo. > > <?php > > $datei_verz = "http://www.server.de/uploads"; > $datei_url = "http://www.server.de/uploads"; $datei_verz = '/mach/hier/mal/den/dateipfad/hin'; // ;) > if(isset( $fupload )) { > > print "Pfad: $fupload<br>"; > print "Name: $fupload_name<br>"; > print "Größe: $fupload_size<br>"; > print "Typ: $fupload_type<br>"; > > > if($fupload_type == "image/gif") { > print "$datei_verz/$fupload_name"; > copy ( $fupload, "$datei_verz/".$fupload_name) or die ("Konnte nicht > kopieren"); > print "<img src='$datei_url/$fupload_name'><br>"; > } > } Hast du jemals das Manual zurate gezogen oder ist geraten worden? > if(isset( $fupload )) { Zugriff auf eine 'globale' Variable. Besser waere $HTTP_POST_VARS/$_POST['fupload'] > if($fupload_type == "image/gif") { Arggggh! Der Mimetyp wird vom Browser uebermittelt und mit viel Glueck kommt da einens Tages mal ein 'mime/ulead studio gif'. Wenn du nur Imagetypen zulassen willst dann frag doch die Datei was sie ist!?! Mit getimagesize() bekommt man den Typ der temporeaeren Datei heraus die da in /tmp noch schlummert. Der Test ob eine erfolgreicher Upload stattgefunden hat wird unterlassen? Du hast zu is_uploaded_file() keine Lust gehabt ? Sollte hier ein true erfolgen ist der Test auf einen gueltigen Typ zumachen und dann mit move_uploaded_file() die Datei zuverschieben an die gewuenschte Stelle als den mit copy() blindlinks zuwueten. Das funtioniert dann unter Umstaenden auch im safe_mode viel besser. > ?> > > <form enctype="multipart/form-data" action="<?php print $PHP_SELF ?>" > method="POST"> > <input type="hidden" name="MAX_FILE_SIZE" value="21200"> Aehmm.... hier ist clientseitig ein Limit von 21 koma zwo kilobyte (21.2kb) eingebaut worden. Wird dies ueberschritten bricht der Client die Uebermittlung ab... Trotzdem werden ein paar Daten uebermittelt. Somit existiert das Array 'fupload' das bei deiner laschen Ueberpruefung durchrutscht. Setzen *sechs* ;). Ueberfliege docheinamal bitte das engl. sprachige Manual unter http://www.php.net/manual/en/features.file-upload.php . Die Funktionen is_uploaded_file() und move_uploaded_file() sind leider erst seit PHP 4 >= 4.0.3 bzw. PHP 3>= 3.0.17 dabei. Solltest du ein aelters PHP haben ist auf das vorhanden sein des Tmpfiles zuueberpruefen oder noch besser gleich mal 'updaten' :) Gruss -- TakeNet GmbH Mobil: 0171/60 57 963 D-97080 Wuerzburg Tel: +49 931 903-2243 Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
php::bar PHP Wiki - Listenarchive