Tutorials

PHP - Einfacher Upload Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
PHP - Einfacher Upload
.

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


#17 von zerfleischer
ich brauch das nicht. -.-
Wir müssen die Fehler sehen und wenn du den code kopiert hast wird der schon gehen ^^

Werde nachher mal versuchen den fehler einzuschränken. Den link hattest du ja irgendwo stehen glaube ich ^^

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#16 von cplaygames
daran liegt es nicht, ich habe es ausprobiert, du musst aber auch bedenken, dass wenn du die php Datei in einem Unterordner hast, das de trotzdem das Unterverzeichnis angibst:

z.b.
obwohl es in picture drin is muss das da stehen
$dir = 'picture/uploads';
sorry für die schwer zu verstehende Erklärung Smily NR:7
#15 von zerfleischer
Die Ordner wo die Datein gespeichert sind haben rechte ja? Die anderen sind uninteressant. Ich seh das so aus dem Fehlercode das er das nicht in den Ordnern Speichern kann. Evtl ist es auch durch Funpic gespert. Das kann ich dir aber nicht sagen. Dazu mpstest du dort nachschauen ^^

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#14 von chrisboy
7,99 KB (habs im Design eingebaut)
#13 von zerfleischer
Wie groß ist die Datei?

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#12 von chrisboy
die Order haben ALLE RECHTE Smily NR:4
#11 von zerfleischer
Gib den Ordnern die Rechte 777 dies kannst du im FTP per rechtklick machen und dann Eigenschaften oder CHMOOD Rechte geben. Kommt drauf an was du nutzt. Danach sollte es gehen ^^

Die Gymnasiasten sind so blöd.... die rechnen mit Buchstaben
#10 von lucas
also bei mir geht es auch
braucht jemand Hilfe dabei ??
#9 von cplaygames
Also bei mir hatts funktioniert als ich allen Ordnern die etwas damit zutuen haben die rechte gegeben habe, du hattest zweimal den Fehler also füssen 2 Ordner die Rechte haben glaub ich
#8 von chrisboy
Zitat:
Warning: move_uploaded_file(uploads/eacce27.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /usr/export/www/vhosts/funnetwork/hosting/chrisboy02/Pennerbande/Textseiten/member/upload.system.php on line 113

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/usr/export/tmp/phpdJMbUK' to 'uploads/eacce27.jpg' in /usr/export/www/vhosts/funnetwork/hosting/chrisboy02/Pennerbande/Textseiten/member/upload.system.php on line 113

rechte sind gegeben

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

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