Good to Know Database

Uploaden von Dateien mit PHP5


Sie haben sich einen eigenen Webserver eingerichtet und wollen Dateien über eine Webseite auf den Server uploaden. Dazu benötigen Sie zuerst einen funktionierenden Webserver mit PHP5. In diesem Beispiel wird ein SuSE Linux 10.0 Server mit Apache 2 und PHP5 als Webserver verwendet.

1. Serverkonfiguration

Standardmäßig kann man mit PHP5 nur Dateien bis maximal 2MB auf den Server uploaden. Damit man auch größere Dateien auf den Server übertragen kann muss man einige Zeilen in der php.ini anpassen. Hierzu gehen Sie wie folgt vor:

suse100:~ # mcedit /etc/php5/apache2/php.ini

Suchen Sie jetzt nach den folgenden Zeilen und ändern Sie diese ab.

post_max_size = 1000M
upload_max_filesize = 1000M

In diesen zwei Zeilen geben Sie an wie groß eine Datei maximal sein darf. In diesem Beispiel möchte ich Dateien bis maximal 1000MB uploaden können.

file_uploads = On

Wichtig ist auch diese Zeile, in der Sie das Uploaden aktivieren können. Normalerweise ist dieser Eintrag bereits auf On gesetzt.

upload_tmp_dir =

Sollten Sie auf ihrer Systempartition nicht genug Speicherplatz frei haben um die Datei zwischenzuspeichern, können Sie hier einen Pfad für die temporäre Datei angeben.

Damit eine Datei abgespeichert werden kann, muss man einen Ordner anlegen, bei dem jeder Benutzer Schreibrechte besitzt. In diesem Beispiel wird der Ordner upload im Apache-Hauptverzeichnis angelegt.

suse100:~ # mkdir /srv/www/htdocs/upload

Jetzt fehlen nur noch die Schreibrechte.

suse100:~ # chmod 777 -R /srv/www/htdocs/upload

2. Das PHP-Script

Damit man jetzt auch eine Datei auf den Server uploaden kann benötigt man noch ein kleines PHP-Script welches die Datei auf den Server kopiert. In diesem Beispiel wird eine index.html, in der man die Datei auswählen kann, und eine upload.php, welche die Datei an den Server sendet und dort abspeichert, im Apache-Hauptverzeichnis angelegt.

Inhalt der Datei index.html:

<html>
<head>
<title>Upload einer Datei</title>
</head>
<body>
<b>Upload einer Datei</b><br><br>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br><br>
<input type="submit" value="Upload starten">
</form>
</body>
</html>

Inhalt der Datei upload.php:

<?
  $filename = $_FILES['datei']['name'];
  $filesize = $_FILES['datei']['size'];
  $tmp_name = $_FILES['datei']['tmp_name'];

  echo "<u>Datei Informationen:</u><br>";
  echo "Dateinamen: " . $filename . "<br>";
  echo "Dateigröße: " . $filesize . "<br><br>";

  if($_FILES['datei'] != "")
    {
      if(move_uploaded_file($tmp_name,"upload/".$filename))
        {
          echo "Upload erfolgreich abgeschlossen.";
        }
      else
        {
          echo "Upload fehlgeschlagen.";
        }
    }
  else
    {
      echo "Es wurde keine Datei zum Uploaden angegeben.";
    }
?>

In der upload.php werden zuerst der Dateiname und die Dateigröße ausgegeben und danach die Datei in das Verzeichnis upload kopiert.

Achtung: Sollte bereits eine Datei mit diesem Namen bestehen wird diese ohne Nachfrage überschrieben!


Dieser Eintrag wurde am 21.05.2004 erstellt und zuletzt am 13.05.2011 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_4_8.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer