yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

Dateiupload



Erstmal der Code:
upload.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<html> 
<head> 
<title>Datei-Upload</title> 
</head> 
<body> 
<h1>Datei-Upload</h1> 
<?PHP 
if(isset($_FILES['datei'])) {
    
ini_set("upload_max_filesize""5M"); 
    
$dateityp=$_FILES['datei']['type'];
    if(
$dateityp != "image/jpeg") {
    echo 
"Es können nur JPG-Bilder hochgeladen werden!";
    }    
    elseif(
move_uploaded_file($_FILES['datei']['tmp_name'],$_FILES['datei']['name'])) {
        echo 
"<h2>Datei ".$_FILES['datei']['name']." erfolgreich hochgeladen</h2>";
        echo 
"Dateiname: ".$_FILES['datei']['name']."
"

        echo 
"Dateigröße: ".$_FILES['datei']['size']." Byte
"

    }

else { 
?> 
<form name="form1" enctype="multipart/form-data" method="post" action=".<?= $_SERVER['SCRIPT_NAME']; ?>"> 
<p> 
<input type="file" name="datei"> 

 
<input type="submit" name="Abschicken" value="Upload starten"> 
</p> 
</form> 
<?PHP 

?> 
</body> 
</html>

In den Zeilen 1 - 6 kann man irgendeinen Code reinschreiben, der sowohl vor als auch nach dem Absenden des Formulars erscheinen soll, das Gleiche gilt für die Zeilen 20 - 26.

PHP hat die interessante Funktion: Es liefert mit dem Dateiupload einige Variablen direkt mit.
$_FILES['datei']['name'] enthält den Namen der Datei.
$_FILES['datei']['type'] ermittelt den mime-typ der hochgeladenen Datei.
$_FILES['datei']['size'] gibt die Größe der Datei in Byte zurück.

Code:
if($dateityp != "image/jpeg"){
Hier kann man den Mime-typ festlegen, der erlaubt sein soll. Will man mehrere Dateitypen erlauben, muss man halt Schleifen hinzufügen. Man sollte auf keinen Fall alle Dateitypen erlauben, denn sonst kann jeder z.B. eine PHP-Datei hochladen und dann ausführen. Schließlich erlaubt es PHP ja auch, Dateien oder Ordner zu löschen.

Code:
echo "Es können nur JPG-Bilder hochgeladen werden!";}
Hier wird die Fehlermeldung ausgegeben, falls jemand eine Datei mit nicht erlaubter Endung hochladen will.

Code:
elseif(move_uploaded_file($_FILES['datei']['tmp_name'],$_FILES['datei']['name'])){
Hiermit wird die Datei in das gleiche Verzeichnis hochgeladen, in dem sich die Datei befindet.
Die nächsten 3 Zeilen geben Dateinamen und Größe aus und dienen somit der Bestätigung.

Geschrieben von dasepp am 18.06.2004 (8866x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

gut + einfach beschrieben & richtig nützlich!
Geschrieben von michi
Mit der Info über die Dateigröße kann man dann auch eine maximale Uploadgröße festlegen...
Geschrieben von Phil Marx
Wichtig ist, dass der Ordner, in denen ihr hochladet, die richtigen Zugriffsrechte haben muss. Normal reicht chmod 755, manchmal muss man 777 nehmen.



Und man muss aufpassen, dass man PHP Version >4.1.x nutzt, da ansonsten die Variablen nicht angenommen werden. Aber jeder bessere Server hat diese Version oder besser.
Geschrieben von Phil Marx
Vl ein kleiner Hinweis:
Mein Internet Explorer sagt zu jpg-Dateien nicht "image/jpeg" sondern "image/pjpeg"

wo der Unterschied liegt weis ich nicht, wollte es nur mal sagen, damit man sich nicht wundert wenn das script nicht richtig funktioniert ;)

Gruß Hendrik
Geschrieben von Hendrik Vorwerk
öhm was muss ich da noch zufügen wenn ich mehrere dateitypen zulassen will? (kenn mich da nich aus o_O)
Geschrieben von osrek
Ich bin ein absoluter PHP newbi aber hätte gerne einen Bildupload auf meiner Seite.
Was muss ich in dem Code ändern, sodass er die bilder auf dieses Verzeichnis kopiert:
http://g32.funpic.de/datei
????
Bitte helft mir!
Geschrieben von g32