Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
core:helper:upload [2014/07/16 18:11] shadowcat [Hochgeladene Dateien speichern] |
core:helper:upload [2014/07/16 00:00] (aktuell) |
||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
Auf der Serverseite existiert ein Script - z.B. ein Modul -, welches die Dateiuploads entgegen nimmt und weiter verarbeitet. | Auf der Serverseite existiert ein Script - z.B. ein Modul -, welches die Dateiuploads entgegen nimmt und weiter verarbeitet. | ||
- | ===== Hochgeladene Dateien speichern ===== | + | ===== Alle hochgeladenen Dateien speichern ===== |
+ | |||
+ | Hat man mehrere Upload-Felder, ist das die schnellste Variante. Die hierbei festgestellten Fehler werden hierbei in Form eines Arrays zurückgeliefert. Zusätzlich erhält man ein Boolean-Result, welches ''false'' ist, wenn es Fehler gab, ansonsten ''true''. | ||
Codebeispiel: | Codebeispiel: | ||
Zeile 27: | Zeile 29: | ||
<sxh php> | <sxh php> | ||
- | <input type="file" name="file" id="file" /> | + | <input type="file" name="files" id="files" /> |
</sxh> | </sxh> | ||
+ | |||
+ | Die Variable ''$ok'' hat den Wert ''true'', wenn alle Dateien erfolgreich verarbeitet werden konnten. Ist dies nicht der Fall, beinhaltet ''$errors'' eine Liste der festgestellten Fehler. | ||
Die Verwendung von ''utf8_decode()'' stellt sicher, daß Verzeichnisnamen mit Umlauten korrekt verarbeitet werden können. Es kann genau wie ''CAT_Helper_Directory::sanitizePath()'' weggelassen werden. | Die Verwendung von ''utf8_decode()'' stellt sicher, daß Verzeichnisnamen mit Umlauten korrekt verarbeitet werden können. Es kann genau wie ''CAT_Helper_Directory::sanitizePath()'' weggelassen werden. | ||
+ | ===== Einzelne Datei verarbeiten ===== | ||
+ | |||
+ | Die Syntax ist in diesem Fall angelehnt an die ''class.upload.php'', welche ja auch die Basis darstellt. Kurzform: | ||
+ | |||
+ | <sxh php> | ||
+ | CAT_Helper_Upload::getInstance(<Dateiname>)->process(<Verzeichnis>); | ||
+ | </sxh> | ||
+ | |||
+ | Ein bißchen mehr Kontrollmöglichkeiten erhält man durch eine Aufteilung der Kommandos. | ||
+ | |||
+ | <sxh php> | ||
+ | // Instanz erzeugen | ||
+ | $current = CAT_Helper_Upload::getInstance($_FILES['file']); | ||
+ | // prüfen, ob die Datei tatsächlich hochgeladen wurde | ||
+ | if ( $current->uploaded ) { | ||
+ | // ok, hochgeladene Datei in das gewünschte Verzeichnis verschieben | ||
+ | $current->process(CAT_PATH.'/modules/myModule/upload'); | ||
+ | // Erfolg prüfen | ||
+ | if ( $current->processed ) | ||
+ | { | ||
+ | // ... usw. ... | ||
+ | } | ||
+ | } | ||
+ | </sxh> | ||
+ | |||
+ | Mehr Informationen sind in der Original-Dokumentation zur ''class.upload.php'' zu finden: | ||
+ | |||
+ | http://www.verot.net/php_class_upload_docs.htm | ||
+ | |||
+ | Prinzipiell gelten alle Informationen, die nichts mit Bildbearbeitung zu tun haben. |