Einführung in die gdLibrary (gdLib)
Massenupload
Wenn man Fotogalerien erstellt, macht es keinen Sinn, 200 Fotos einzeln mit unserem Uploadformular aus Übung 5 hochzuladen. Besser wäre es, wenn man alle
Bilder von der Festplatte wählt und gdLib macht den Rest. Leider geht es nicht so einfach, da ein File-Feld in HTML nur jeweils eine Datei erlaubt.
Besser ist es, wenn man die Bilder im Original vorab auf einen ftp-Server speichert und dann einfach nur noch unsere Funktion startet. Das funktioniert tadellos.
Aufgabe: Vollautomatischer Massenupload für Online-Fotogalerien
In Übung 5 bin ich darauf eingegangen, wie wir eine Datei mit ftp hochladen. Da in diesem Beispiel nur einen Schleife hinzukommt, lasse ich die bekannten Passagen raus.
Die Handhabe ist eigentlich ganz einfach. Wir bauen eine ftp-Verbindung zum Server aus, lesen das Verzeichnis aus, in dem sich unsere Originalbilder befinden und gehen
dann Bild für Bild durch. Zum Schluss löschen wir das Originalbild vom Server. Das erlaubt uns, mit ftp auf dem Server zu schauen, wie weit unsere Funktion ist. Im Falle
eines Abbruchs brauchen wir unsere Funktion einfach wieder neu starten. Da die verarbeiteten Bilder gelöscht sind, geht unsere Funktion nur noch die verbliebenen Bilder durch.
Der Code:
<?php // FTP-Verbindung aufbauen // Verzeichnis auslesen // Jede Datei durchgehen $local_file = '/tmp/'.$filename_old; if (($file_prfx == '.jpg') || ($file_prfx == '.JPG')) { // Foto vom Server laden // Foto in die Datenbank eintragen // Grössen definieren $old_picture = imagecreatefromjpeg($local_file); // Bild verarbeiten und hochladen $new_picture = imagecreatetruecolor($width_new, $height_new); imagecopyresampled($new_picture, $old_picture, 0, 0, 0, 0, $width_new, $height_new, $width_old, $height_old); // altes Foto vom Server löschen } else { } } ?>
Einführung in die gdLib | Version 2.0 alpha | 2005-10-07