Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


4 kostenlose Bücher bei unserer Buch-Verschenkaktion 03/2010
  Tutorial geschlossenGeschlossen    
  Tutorial geschlossenGeschlossen    
 
Tutorial-Optionen Ansicht
Upload via Formular
Upload via Formular
Veröffentlicht von Christian Fein
09.01.03
Upload via Formular

Dieses Tutorial ist von antihero, bitte Fragen dazu an antihero

Der Upload via PHP ist sicher etwas, das man immer wieder brauchen kann. Außerdem funktioniert es mit PHP ziemlich einfach, deswegen mal ein kurzes Tutorial dazu. Grundwissen in PHP und HTML wird vorausgesetzt.

Zuerst brauchen wir ein Formular, in dem der Benutzer eine Datei auswählen kann, welche hochgeladen werden soll. Ich werde hier einfach den Quelltext reinschreiben, da der HTML-Part klar sein sollte:
Code:
<form enctype="multipart/form-data" action="upload.php" method="post"> 
<input type="file" name="file"><br> 
<input type="submit" value="hochladen"> 
</form>
In diesem Formular kann der Benutzer also auf „hochladen“ klicken und die im obigen Feld angegebene Datei wird hochgeladen. Das komfortable am Upload via PHP ist, dass man sich nicht darum kümmern muss, wie die Datei auf den Server kommt, sondern lediglich, wie man sie auf dem Server an den gewünschten Ort bugsieren kann. Dort setzt dann das upload.php Script ein. Ich schreibe hier den Quelltext einfach stellenweise hin, zwischendurch mit einem Kommentar, Wenn ihr alle Codesequenzen untereinander in eine leere Datei einfügt, habt ihr eine funktionierende upload.php Datei.
Ganz wichtig ist noch, dass der Name des Upload Eingabefeldes <input type="file" [...]> nicht "file" sein muss, aber just dieser Name ist der, der in den folgenden Zeilen Code immer in der ersten Klammer nach $_FILES steht.
PHP-Code:
<?php 
$tempname 
$_FILES['file']['tmp_name']; 
$name $_FILES['file']['name'];
Die Datei wird via Formular auf den Server geladen und bekommt erstmal einen kryptischen Namen (zB. TxwbWerqrS) zugewiesen. Mit diesem Namen arbeiten wir, bis die Datei umbenannt wurde.
Die Variable $name enthält den Dateinamen, den die Datei auf dem Clientrechner hatte.

Jetzt könnte man eigentlich schon die Datei an die gewünschte Stelle verschieben, allerdings ist es ziemlich gefährlich ein Upload Script ohne Einschränkungen im Netz stehen zu haben. Kommt da der falsche User drauf, ist der Webspace am nächsten Tag evtl. schon voll mit evtl. nicht ganz legalem Material. Es ist also nur in eurem Interesse, wenn ihr die upgeloadete Datei überprüft.
PHP-Code:
$type $_FILES['file']['type']; 
$size $_FILES['file']['size']; 
Damit wird ausfindig gemacht, welchen Typ die Datei hat und wie gross sie ist. Ich weiss, man kann die Grösse des upzuloadenden Files auch schon im HTML Formular einschränken, diese Sperre kann aber leicht umgangen werden, deshalb arbeite ich hier mit der PHP Überprüfung der Dateigrösse. Die kann nämlich nicht umgangen werden (jedenfalls meines Wissens nach.
PHP-Code:
if($type != "image/gif" && $type != "image/pjpeg") { 
    
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."

if(
$size "15000") { 
    
$err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!"

Diese erste if Abfrage prüft, ob die Datei den Typ gif oder jpeg hat, wenn nicht, wird dem Array $err ein Wert hinzugefügt. Die zweite if Abfrage prüft dann, ob die Grösse der Datei kleiner als 15000 Bytes (15 KB) ist. Wenn die Variable $err nicht leer ist, ist ein Fehler aufgetreten.
Hier ein kleiner Einschub. Wir wissen also, das die Datei bereits auf dem Server liegt, wenn der Benutzer auf den "hochladen" Button klickt. Auch wenn die Datei zu gross ist, der Typ nicht dem entspricht den wir wollen, etc. Allerdings ist das ganze upload System so schlau aufgebaut, das die Tempdatei nach dem upload automatisch gelöscht wird, das heisst, wenn die Datei nicht anderswo hinkopiert wird, löscht der Server sie automatisch nach abarbeiten des Scripts. Diese Eigenschaft ist sehr praktisch und erspart uns viel Arbeit. Wenn unsere Prüfungen auf Grösse und Typ der Datei ein negatives Ergebnis liefern, kopieren wir Sie einfach nirgendwo hin, und sie wird automatisch gelöscht.
PHP-Code:
if(empty($err)) { 
    
copy("$tempname""$name"); 
    echo 
"Die Datei $name wurde erfolgreich hochgeladen!"

else { 
    foreach(
$err as $error
    echo 
"$error<br>"

?> 
Mit diesem Schritt wird die Datei in das Verzeichnis upload/images/$name verschoben. Allerdings nur, wenn keine Fehler aufgetreten ist, bzw. die $err Variable leer ist. Ansonsten wird die $err Variable ausgegeben.
Möglicher Fehler:
Wenn man in ein Verzeichnis hochzuladen versucht, in dem der Browser keine Schreibrechte hat, wird das zwangsläufig zu einem Fehler führen, beachtet also in welches Verzeichnis ihr die Dateien speichern wollt.
Das Verzeichnis wohin die Datei hochgeladen wird, sollte nicht absolut angegeben werden, sondern vom "Standpunkt" des upload.php scripts aus. Wenn also ins selbe Verzeichnis hochgeladen wird, indem sich auch die upload.php Datei befindet, wäre der Pfad einfach "$name".
Das wars, zum Grundgerüst des uploads. Bei Fragen, Unklarheiten und Korrekturen, PM an mich.

antihero
__________________
Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
Bewertung
 
Ausführlichkeit
67.2%67.2%67.2%
3,36
Verständlichkeit
74.2%74.2%74.2%
3,71
Kompetenz
64.2%64.2%64.2%
3,21
Gesamteindruck
65.8%65.8%65.8%
3,29
7 User bewerteten mit 68% durchschnittlich

Tutorial-Optionen
 

 
 
Lesezeichen:


Tutorial-Optionen
Ansicht
Ähnliche Themen
 
Tutorial Autor Forum Kommentare Letzter Beitrag
Upload in einem Formular! Seven Secrets PHP 23 20.12.05 23:15
Formular mit Upload vexx PHP 6 04.04.05 14:02
upload via formular longstar PHP 14 10.02.05 18:03
Upload-Formular? corsanostra PHP 1 26.02.02 22:32
upload-formular html ? corsanostra HTML 2 26.02.02 17:35
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 137
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 264
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 152
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 103
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 194
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 80,31%
155 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 19,69%
38 Stimmen
Stimmen gesamt: 193
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,22056 Sekunden mit 32 queries