Programmer's Reference Guide

Zend_File

Zend_File_Transfer

Zend_File_Transfer ermöglicht es Entwicklern die Kontrolle über Dateiuploads sowie über Dateidownloads zu erhalten. Es erlaubt die Verwendung von eingebuaten Prüfungen für Dateizwecke und gibt sogar die Möglichkeit Dateien mit Filtern zu verändern. Zend_File_Transfer arbeitet mit Adaptern welche es erlauben die selbe API für unterschiedliche Transportprotokolle wie HTTP, FTP, WEBDAV und andere zu verwenden.

Hinweis: Einschränkungen
Die aktuelle Implementation von Zend_File_Transfer die in 1.6.0 ausgeliefert wird, ist auf HTTP Post Uploads limitiert. Downloaden von Dateien und andere Adapter werden in einem kommenden Release hinzugefügt. Nicht implementierte Methoden werfen eine Ausnahme. Deswegen sollte aktuell eine Instanz von Zend_File_Transfer_Adapter_Http direkt verwendet werden. Das wird sich in Zukunft ändern, sobald mehrere Adapter vorhanden sind.

Die Verwendung von Zend_File_Transfer ist recht einfach. Es besteht aus zwei Teilen. Dem HTTP Formular das den Upload durchführt, und der Behandlung der hochgeladenen Dateien mit Zend_File_Transfer. Siehe das folgende Beispiel:

Beispiel #1 Einfaches File-Upload Formular

Dieses Beispiel zeigt einen einfachen Dateiupload welcher Zend_File_Transfer verwendet. Das erste Teil ist das Dateiformular. In unserem Beispiel gibt es nur eine Datei welche wir hochladen wollen.

<form enctype="multipart/form-data" action="/file/upload" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
        Choose a file to upload: <input name="uploadedfile" type="file" />
    <br />
    <input type="submit" value="Upload File" />
</form>

        

Es ist zu beachten das der Bequemlichkeit halber Zend_Form_Element_File verwendet werden sollte statt das HTML manuell zu erstellen.

Der nächste Schritt ist die Erstellung des Empfängers des Uploads. In unserem Beispiel ist der Empfänger /file/upload. Als nächstes erstellen wir also den Kontroller file mit der Aktion upload.

$adapter = new Zend_File_Transfer_Adapter_Http();

$adapter->setDestination('C:\temp');

if (!$adapter->receive()) {
    $messages = $adapter->getMessages();
    echo implode("\n", $messages);
}

        

Wie man sieht besteht die einfachte Verwendung darin ein Ziel mit der setDestination Methode zu definieren und die receive() Methode aufzurufen. Wenn irgendwelche Uploadfehler vorhanden sind werden diese als Ausnahme zurückgegeben.

Hinweis: Achtung
Beachten Sie das das nur die einfachste Verwendung ist. Man sollte dieses Beispiel niemals in einer lebenden Umgebung einsetzen da es massive Sicherheitslücken aufweisst. Man sollte immer Prüfungen verwenden um die Sicherheit zu erhöhen.


Zend_File
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual