Tutorials

PHP - Einfacher Upload Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
PHP - Einfacher Upload
.

15429 - 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


#37 von Lars-marcel
Bei mir klappt das net.. mach das so wie du das schreibst und wednn ich die date upload.php im browser starte habe ich ein textfeld einen Durchsuchen und hochladen button, der hochladen Button hat keine Funktion, und nach dem upload button steht dieser Text:

'; 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" Smily NR:7 ; } else { echo 'Ungültiges Dateiformat'; } } ?>

so sieht das aus:
Bild1: http://img248.imageshack.us/img248/8420/screen01j.jpg
Bild2: http://img823.imageshack.us/img823/6665/screen02f.jpg
#36 von zerfleischer
Poste dein Code mal Bitte im Forum.

Dein Ordner muss das "s" hinten dran bekommen!!! es steht bei dir nur upload da, das ist aber falsch wenn du es nur kopiert hast.

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#35 von bluereck
Und schon das nächste Problem??.

Habe die Datei Upload genannt, oderner auch und auch im Code.
Nun auch die 777 Rechte und hochgeladen, jetzt komme nfolgende Meldungen

Warning: move_uploaded_file(uploads/8d4.png) [function.move-uploaded-file]: failed to open stream: No such file or directory in /var/www/pages/levis/web/imgload/upload/upload.php on line 42

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/www/pages/levis/tmp/phpRaMBm0' to 'uploads/8d4.png' in /var/www/pages/levis/web/imgload/upload/upload.php on line 42
#34 von zerfleischer
Zitat:
www/upload/upload-ntmb.php

Da ist der fehler doch :=)

Lese dir mal den ersten abschnitt durch. Also das über dem ersten Codeschnipsel. Dann wirst du denke ich sehen was falsch gelaufen ist.

Wenn du doch nicht weiterkommen solltest.

Lese es nochmal bis dir wasd auffällt :=)

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#33 von zerfleischer
Hast du dem Ordner alle rechte gegeben?
Sollte 777 haben oder alle Hacken dort sein. Dann gehts auch mit dem Script.

Werde es mal hjinzuschreiben ^^

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#32 von bluereck
Also bei mir klappt es nicht, da kommt immer die Fehlermeldung:

Warning: move_uploaded_file(uploads/bf81edd.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /users/loy-elements/www/upload/upload-ntmb.php on line 30

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/users/loy-elements/temp/phpIZxQiN' to 'uploads/bf81edd.jpg' in /users/loy-elements/www/upload/upload-ntmb.php on line 30

Ich habe auch alles so in ne php datei kopiert wie es da oben steht.
#31 von zerfleischer
Ja kannst du auch machen. Aber hier ist es für die bessere übersicht beim Programmieren extra so gemacht.

Wenn du nicht weißst wie man einen ordner zurück geht dann einfach so schreiben ... href="../ordner/datei.html">... mit dem ../ geht man einen ordner zurück und dazu haben wir glaube ich auch ein Tutorial hier. Muss ich mal guggen ob ich es Finde

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#30 von Habbosun
Also geht ganz gut, kann man das mit dem Vezreichnis eigentlich ins Hauptverzeichnis machen? Also Root?
#29 von chrisboy
schreibst einfach die warnung und darunter dann den Code oder du macht es per Ifram oder Inclubed
#28 von dassindwir
ja das könnte Passiren allso immer kontrollieren und die User darauf hinweisen das
nur Bilder hochgeladen werden dürfen die ihnen gehören
Liebe Grüße
dassindwir




« 1 2 3 4 »

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

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