PHP 4.3

11.2.1 Formular zum Dateiupload

Die Upload-Funktion wird über HTML-Formulare vorbereitet. Durch die Angabe einer besonderen Kodierung der Formulardaten (auf Basis des RFC 1867, http://www.ietf.org/rfc/rfc1867.txt) sowie einer eindeutigen Kennzeichnung des Variablennamens erkennt PHP, dass Sie eine Datei übertragen möchten:

Beispielskript Formular mit Upload-Funktionalität

*1    <form enctype="multipart/form-data" action="beispiel.php" method="post">
*2    <input type="hidden" name="MAX_FILE_SIZE" value="10000">
      Datei:<br>
*3    <input type="File" name="userfile" size="25" maxlength="255"><br><br>
      Zielpfad:<br>
*4    <input type="Text" name="zielpfad" size="25" maxlength="255"><br><br>
      Zielname:<br>
*5    <input type="Text" name="zielname" size="25" maxlength="255"><br><br>
      <input type="Submit" value="Datei absenden">
      </form>  

Das oben abgebildete Skript zeigt die Merkmale, die von PHP vorausgesetzt werden, um einen Dateiupload erfolgreich durchzuführen. Zusammenfassend finden Sie nachfolgend eine Aufstellung der Formulareigenschaften für die Upload-Funktion:

  1. Das Formular verwendet die Kodierungssmethode "multipart/form-data" und die Methode "post" (Zeile *1).

  2. Das versteckte Formularfeld "MAX_FILE_SIZE" ist eine Angabe, die Sie optional treffen können, wenn Sie die zulässige Größe der Datei beschränken möchten. Beachten Sie jedoch, dass Benutzer diese Einschränkung umgehen können, indem sie selbst ein entsprechendes HTML-Dokument aufsetzen, welches die Daten an das von Ihnen definierte Verarbeitungsskript sendet.
    Unabhängig davon können weder Sie noch der Benutzer mit dem Formularfeldwert die in der PHP-Konfigurationsdatei php.ini festgelegte Einstellung umgehen. Standardmäßig ist die maximale Upload-Größe dort auf 2 Mbyte eingestellt.

  3. Mit dem Formularelement "File" stellen Sie das notwendige Eingabefeld mit einem Button zur Auswahl der Datei dar *3.

  4. Als Ergebnis dieses Input-Elements steht im verarbeitenden Skript ein Array zur Verfügung, das Informationen über die übertragene Datei enthält.

  5. Zur Weiterverarbeitung können Sie weitere Formularfelder mit Informationen für das empfangende PHP-Skript definieren, wie zum Beispiel den Pfad, in dem die Datei abgelegt werden soll *4, oder den Namen, mit dem die Datei nach der Übertragung betitelt werden soll *5. Da die Datei, wenn sie auf dem Server ankommt, in einer temporären Datei gespeichert ist, besitzt sie keinen festgelegten Namen.
    Mit diesen Formularfeldern geben Sie also lediglich dem Benutzer die Möglichkeit, eigene Wünsche zu definieren. Wenn Sie Dateien nach einem festgelegten Schema benennen oder ablegen möchten, können Sie dies mit den nachfolgenden Verarbeitungsskripten genauso tun. PHP gibt Ihnen jede erdenkliche Freiheit.

Kommentare (0)

Ihr Kommentar

Name