miowh: Bilder hochladen und anzeigen - Filearea?

Ich will ein online Freundschaftsbuch machen und da soll ein Bild von der jeweiligen Person eingebettet sein. Dazu brauch ich diese Filearena.

Momentan bin ich schon so weit:

<form enctype="multipart/form-data" action="index.php" method="post">
<input type="hidden" name="30000" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Hochladen!">
</form>

Da muss aber noch irgendwas mit PHP rein, oder?

miowh

  1. Da muss aber noch irgendwas mit PHP rein, oder?

    Du musst das Formular nach dem Abschicken auswerten. Dies kannst du mit PHP realisieren. Dort kannst du auch bestimmen, was mit dem (zunächst als temporäre Datei gespeicherten) hochgeladenen Bild passieren soll.

    1. Da muss aber noch irgendwas mit PHP rein, oder?

      Du musst das Formular nach dem Abschicken auswerten. Dies kannst du mit PHP realisieren. Dort kannst du auch bestimmen, was mit dem (zunächst als temporäre Datei gespeicherten) hochgeladenen Bild passieren soll.

      ja und wie? :o
      bei der php-seite hab ich folgendes:

      <?php
      /* Userland Test für hochgeladene Datei. */
      function is_uploaded_file($filename) {
          if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
              $tmp_file = dirname(tempnam('', ''));
          }
          $tmp_file .= '/' . basename($filename);
          /* Der Benutzer könnte einen führenden Slash in php.ini haben... */
          return (ereg_replace('/+', '/', $tmp_file) == $filename);
      }

      /* So verwenden Sie sie, nachdem Sie in diesen älteren
      * Versionen auch keine move_uploaded_file() haben: */
      if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
          copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
      } else {
          echo "Mögliche Dateiupload-Attacke: Dateiname '$HTTP_POST_FILES[userfile]'.";
      }
      ?>

      <?php
      // In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
      // In PHP kleiner als 4.0.3 verwenden Sie copy() und is_uploaded_file() anstatt von
      // move_uploaded_file()

      $uploaddir = '/var/www/uploads/';

      print "<pre>";
      if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
          print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
          print_r($_FILES);
      } else {
          print "Possible file upload attack!  Here's some debugging info:\n";
          print_r($_FILES);
      }

      ?>

      1. ja und wie? :o

        Ich empfehle dir Lektüre dieser leicht verständlichen und kurzen Dokumentation:

        http://www.it-academy.cc/article/1359/PHP:+Upload+per+HTTP.html

        Wenn du das Script verstanden hast, kannst du es sehr leicht für deine Zwecke anpassen