Tutorials

PHP - Einfacher Upload Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
PHP - Einfacher Upload
.

20487 - habbolegend - 03.08.2009 18:08 Uhr - Version: 4 - - verlinken als BB-Code


Hier hab ich mal ein kleines Tutorial für einen Upload.

Als erstes erstellt ihr die upload.php in der sich alles befindet.
Wir fangen mit der Verzeichnisauswahl an:
Erstellt ein Verzeichnis namens uploads und schreibt in die upload.php hinein, wie das verzeichnis heißt:
1
2
<?php
$dir 
'uploads';


Danach kommt das Formular:
1
2
3
4
echo '<form action="" method="post" enctype="multipart/form-data">
  <input name="datei" type="file" />&nbsp;
  <input name="upload" type="submit" value="Hochladen" />
</form>';


Nun kommen wir zur Umbennen Funktion, damit die datei nicht den selben Namen erhält, wie der Uploader sie hochlädt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(isset($_POST['upload']))
{
       // Zufälliger Dateiname:
          $word = md5(time());

       // Ein paar Zeichen vom Zufälligen Dateinamen abziehen
          $word = substr($word, -7);
      
   // Dateifeld definieren
      $datei        = $_FILES['datei']['name'];

   // Dateiformat erfassen
      $info   = pathinfo($datei);
      $format = $info["extension"];
      
   // Der entgültige Dateiname
      $dateiname    = $word.'.'.$format;



Nachdem wir das gemacht haben, müssen wir noch die Uploadfunktion einbauen, das sieht dann wiefolgt aus:
1
2
3
4
5
6
7
8
9
10
11
// Erlaubte Dateitypen
       $allowed_types = "(zip|rar|ZIP|RAR|png|jpg|jpeg|gif)";
       
        if(preg_match("/\." . $allowed_types . "$/i", $_FILES["datei"]["name"])) 
        {
           $dateiupload = move_uploaded_file($_FILES['datei']['tmp_name'], "$dir/$dateiname");
       } else {
          echo 'Ungültiges Dateiformat';
       }
        }
    ?>


Und zum Schluss, für die Faulen alles zusammen:
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
<?php
    $dir 
'uploads';
        echo 
'<form action="" method="post" enctype="multipart/form-data">
      <input name="datei" type="file" />&nbsp;
      <input name="upload" type="submit" value="Hochladen" />
    </form>'
;
    if(isset(
$_POST['upload']))
    {
           
// Zufälliger Dateiname:
              
$word md5(time());

           
// Ein paar Zeichen vom Zufälligen Dateinamen abziehen
              
$word substr($word, -7);
         
       
// Dateifeld definieren
          
$datei        $_FILES['datei']['name'];

       
// Dateiformat erfassen
          
$info   pathinfo($datei);
          
$format $info["extension"];
         
       
// Der entgültige Dateiname
          
$dateiname    $word.'.'.$format;
   
   
// Erlaubte Dateitypen
   
$allowed_types "(zip|rar|ZIP|RAR|png|jpg|jpeg|gif)";
   
    if(
preg_match("/\." $allowed_types "$/i"$_FILES["datei"]["name"])) 
    {
       
$dateiupload move_uploaded_file($_FILES['datei']['tmp_name'], "$dir/$dateiname");
   } else {
      echo 
'Ungültiges Dateiformat';
   }
    }
    
?>


Ich wünsch euch noch viel Spaß damit Smily NR:2

Information:
Das Script ist auf Funktionalität getestet und Funktioniert!

Gebt dem Ordner alle rechte sodass dort auch die Datein gespeichert werden können.


Mitglieder-Kommentare


#27 von cplaygames
zum beispiel ein bild von einer anderen seite was dem hochlader nicht gehört, das wäre dan ja uf meiner seite und ich würde schuld kriegen oder?
#26 von chrisboy
welche verbotenen Sachen ? meinst du so "Bilder ab 13" oder so oder Endungen ?
#25 von cplaygames
Wenn ich das auf die page packe muss ich dan schreiben das z.b. es verboten ist verbotenes material hochzuladen und wen ja wo und was muss ich schreiben
#24 von cplaygames
Die anderen können die daten eh sehen wenn du sich nicht schützt
#22 von chrisboy
dann können aber die anderen die Hochgenadelenden Dateien sehen
#21 von cplaygames
Zu Chrisboy: Bei Funpic wird ja der inhalt von Ordnern automatisch angezeigt wenn kein index datei besteht, mach doch einfach ein ifarm zu dem ordner Smily NR:8
#20 von chrisboy
ja ich habe den pfad falsch eingegeben...
#19 von zerfleischer
Schau mal in den TUTs bitte nach. Dort findest du unter PHP bestimmt etwas. Es heist Glaube ich Ordner inhalte ausgeben.

Woran hats den jetzt gelegen? ALos wo war der fehler? Pfad falsch oder wie ? :=)

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#18 von chrisboy
ahhh es geht. kann man das auch nun machen, das der die URL anzeigt? also der zeigt ja nur die Endung an. kann man nicht so ne box einbauen, das man diese URL sofort kopieren kann =?

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

Melde dich doch ganz einfach an, es ist kostenlos. :-)