File API Dateiupload - bin ich zu blöd?

  • Hallo,

    ich will mir ein Bilder-Upload bauen. "Anleitungen" dazu gibt es mehr als genug im Netz - mit Dateinamen- und Größen-Anzeige, mit Bildvorschau etc, etc. Doch ausgerechnet da, wo es spannend wird, beim wirklichen Upload, hören alle Anleitungen auf. Oder bin ich zu blöd?

    Beispiel

    Hier gibt es diverse Vorschau-Möglichkeiten. Aber wie kann ich nun diese Dateien wirklich hochladen? Oder anders ausgedrückt, das Hochladen ist schon klar, aber wie übergebe ich die Daten an die Upload.php?

  • Da hast Du nicht ganz unrecht, ich habe vor einiger Zeit vor dem selben Problem gestanden.

    Kern der Sache ist ja ein Eingabefeld vom Typ "file", mit dem man die Datei(en) auswählt. Normalerweise ist dies Bestandteil eines Formulars und wenn man das mit Submit abschickt, wird die Datei hochgeladen, ohne dass man weiteres dazu tun muss.

    Interessant wird es dann auch auf den Server, weil die Datei(en) mit temporären Namen ankommen und man sie verschieben muss auf den Dateinamen und das Verzeichnis, wie man es braucht. Sieht dann i. allg. so aus:

    PHP
    <?php
        error_reporting(E_ALL);
        ini_set('display_errors', '1');
        var_dump($_FILES);
        var_dump(empty($_FILES));
        $sourcePath = $_FILES['img']['tmp_name']; // Storing source path of the file in a variable
        $targetPath = "uploads/" . $_FILES['img']['name']; // Target path where file is to be stored
        echo $sourcePath; echo $targetPath;
        move_uploaded_file($sourcePath, $targetPath) ; // Moving Uploaded file
    ?>

    'img' ist dabei nicht fest vorgegeben, sondern der Name des file-Eingabefeldes; man kann sich leicht davon überzeugen, wenn man sich den Vardump von $_FILES ansieht.

  • Ja, offenbar bin ich wirklich zu blöd - auch wenn das eigentlich nur eine rhetorische frage war :)

    Das Formular habe ich einfach nicht beachtet, stattdessen die Lösung die ganze Zeit im JavaSricpt gesucht.

    Danke :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!