5x bewertet

Formular verarbeiten: File-Upload uvm.

von Delite  |  19.02.2007 um 07:11 h
PHP Grundlagen
Typ: PHP Grundlagen
Stufe:Mittel
Vorraussetzung für dieses Tutorial ist dieses hier.
Zu erst einmal gehen wir davon aus wir haben ein ganz normales kleines Text-Feld. das können wir an die ausgabe (action="") senden und dort dann verarbeiten. Unser Textfeld heisst Name dann sieht das so aus für die POST-Methode:


<?php
    
echo "Dein Name ist also ".$_POST["name"];
?>



Man schreibt einfach $_POST["textfeld"] dafür. Das Funktioniert bei allen Feldern außer das File-Feld. Dann gibt es noch die GET-Methode das ist eigentlich fast das gleiche:


<?php
    
echo "Dein Name ist also ".$_GET["name"];
?>



Diesmal macht man es halt mit $_GET und um das ganze ganz zu vermeiden, macht man es sich noch einfacher:


<?php
    
echo "Dein Name ist also ".$_REQUEST["name"];
?>



Ich würde jedem empfehlen REQUEST zu benutzen. Damit nimmt man GET und POST wahr *love*. Der Name in den [] kommt durch den namen zustande, dem ihr dem Input-Feld gegeben habt. <input name="textfeld">


Checkboxen
Wenn ihr jetzt einem Namen mehrere Checkboxen zugeordnet habt, könnt ihr diese mit einer For-Schleife aufrufen:


<?php
    
foreach ($_REQUEST["checkboxname"] as $check) {
        echo 
$check.", ";
    }
?>



Eure ausgewählen Checkboxen werden nun aufgezählt. $check ist dann der inhalt (value=) eurer Checkbox.


File-Upload
Zum File-Upload gibt es eine Menge Variablen.


<?php
    $filename 
$_FILES['namedesfiles']['name']; // Das ist der Dateiname
z.Bmeinbild.gif
    $filesize 
$_FILES['namedesfiles']['size']; // Das ist die größe des
Files
    $filetype 
$_FILES['namedesfiles']['type']; // Das ist der
    // Mime-Typ des Files. 
    
$filetemp $_FILES['namedesfiles']['tmp_name']; // Das ist die
temporäre
    
// Datei, hier ist der Upload drin. Diesen brauch man dann beim
Upload
?>




Hier findet ihr eine Liste von Mime-Typen (etwas nach unten scrollen)

Für namedesfiles müsst ihr logischerweise den Namen eingeben, dem ihr das Input-Feld gegeben habt. Ja jetzt haben wir das alles aber wie lädt man eine Datei hoch?


<?php
    move_uploaded_file
($_FILES['file']['tmp_name'],$_FILES['file']['name']);
?>



Jetzt wird die Datei direkt in den Ordner geladen (Wenn die Rechte 777 sind zum schreiben). Jetzt will man aber vielleicht einen bestimmten Dateinamen haben und will das ganze in ein bestimmtes Verzeichnis tun.


<?php
    $endung 
strstr($_FILES['namedesfiles']['name'], ".");
    
$neuerpfad "meinordner/bild".$endung;
    
move_uploaded_file($_FILES['namedesfiles']['tmp_name'],$neuerpfad);
?>



mit $endung trennen wir den Bereich ab wo ein Punkt ist also quasi die Datei-Endung. $neuerpfad ist halt der neue Name der Datei und deren Pfad (meinordner/bildENDUNG). Dide Datei heisst dann bild + Endung.

Das wars auch schon Smilie Wenn ihr Fragen habt, postet ruhig.



6 Kommentare




Tobi

Und DropdownMenü? Smilie
am 24.07.2007 um 11:05 Uhr


Delite

>Tobi
das gleiche wie bei textfeldern. ;)
am 23.12.2007 um 10:48 Uhr


hey! super tut!
gibt es denn auch eine möglichkeit dass die dateien, die hochgeladen werden, erst von einem "admin" freigeschlatet werden müssen? lg
am 22.02.2008 um 12:32 Uhr


Yaka

könntest du da bitte ganz unten den insgesammten code hinmachen? damit ich es kontrolieren kann? xD

bittteeee Smilie Smilie Smilie Smilie Smilie
am 31.07.2008 um 21:02 Uhr


smoothie

kann man das auch für ein layoutupload benutzen ?

und muss man nicht vorher eine Datenbank in phpmyadmin benutzen ? Smilie
am 05.01.2010 um 22:42 Uhr


Luluko

@Smoothie: Das ist ja keine richtiger Code, sonder nur, damit man weiß was man brauchst um so ein uploadformular zu machen.

Aber du hast recht, eine DB brauchst dafür, nimm dir das Tutorial doch zur Hand und schau dir zu gleich z.B. den Avatar-Uploader(das Tut) an. Dann kannst du ja mal schauen, ob du es hinbekommst.

Oder, und sorry für die schleichwerbung, du gehts als alice-grafixx, denn sie hat einen fertig layoutuploader gemacht....

Ich hoffe, dass das jetzt richtig war.
am 06.01.2010 um 10:20 Uhr