phpbar.de logo

Mailinglisten-Archive

[php] bitte kurz testen...

[php] bitte kurz testen...

Joerg Behrens php_(at)_phpcenter.de
Mon, 12 Nov 2001 00:21:12 +0100


Moin,

----- Original Message -----
From: "Michael Paffrath" <paffrath_(at)_fatmedia.de>
To: "php Mailingliste" <php_(at)_php-center.de>
Sent: Sunday, November 11, 2001 10:48 PM
Subject: [php] bitte kurz testen...


> hallo zusammen,
>
> ich werde gerade verrückt!!!
>
> nachdem ich jetzt ein paar stunden abstand von dem upload-script genommen
> habe, versuche ich es jetzt wieder. hab mir das script von php4-forum
> nochmal kopiert (http://www.php4-forum.de/beispiele/anwendung_upload.htm)

*seufz*
Gibts ansich kein Gesetz was schlechte Beispiele verbietet?
Was stoert dich den an dem Beispiel aus dem ORIGINAL php.net Manual. Damit
einen Fileupload hinzbekommen sollte doch wohl nicht so schwer sein.
Hinterher kann man ihn ja seinen Beduerfnissen anpassen.
Anbei ein Uploadscript was die dafuer vorgesehenen PHP Funktionen benutzt
und ein paar Fehler vermeidet wie sie in deinem Beispiel vorkommen.
Nur zur Information. $_POST, und $_SERVER ist schon die neue Bezeichnung der
Arrays wie sie mit einer der neuen PHP Versionen eingefuehrt werden wird.
Solltest du kein >4.0.7rcX haben tauschen sie gegen HTTP_ aus.

Ich habe keine weiteren Features eingebaut damit du es erst einmal zum
laufen bekommst. Lfd. gefahren sind ansich die fehlende Vergabe eines neuen
Names zum Abspeichern. Da nicht geprueft wird ob eine gleichnamige Datei
bereits besteht. Auch sollte nicht jeder File/gr. hochgeladen werden.
Ein pruefen des Types nur anhand des Names/Erweiterung ist nich ganz
gefahrlos. Sofern es um Bilder geht sei dir die Funktion getimagesize() ,
die dir den Typ liefert, ans Herz gelegt. Die Info ueber den Mimetyp kann du
getrost vergessen das sie nicht vertrauenswuerdig ist und vom
Clientuebermittelt wird.

Ich hoffe der Umbruch macht nichts kaputt.


script.php
------------
<html>
<head>
<title>upload - test</title>
</head>

<body>
<form method="POST" action="<?php echo $GLOBALS['PHP_SELF']; ?>"
enctype="multipart/form-data" >
  <p>
  <input type="file" name="bild">
  <input type="submit" value="upload" name="upload"></p>
</form>
<?php
if($_SERVER['REQUEST_METHOD'] && $_POST['upload'] === "upload"){
  if(is_uploaded_file($_FILES['bild']['tmp_name'])){

    // we need some config here!
    $dir = getenv(DOCUMENT_ROOT)."/uploads/";

    if(move_uploaded_file($_FILES['bild']['tmp_name'],
$dir.$_FILES['bild']['name'])){
      echo "<p>Filename: ".$_FILES['bild']['name']."<br />\n";
      echo "Filesize: ".$_FILES['bild']['size']." bytes<br />\n";
      echo "Filetype: ".$_FILES['bild']['type']."<br />\n";
      echo "Succesfully saved in $dir !</p>\n";
    }
    else{
      echo "<p>Error! Could save the File! Be sure that we have permissions
to write in <b>$dir</b> and that the
      dir exists.</p>\n";
    }
  }
  else{
    echo "<p>No file uploadet! Please check max_upoad/post limits<br />
    in your php.ini and take a look to the MAX_FILE_SIZE settings in the
html form.</p>\n";
  }
}
?>

</body>
</html>



php::bar PHP Wiki   -   Listenarchive