...czyli widać, jak bardzo paruje mi z głowy.
W piątek wyjechałem do klientów, w celu ustalenia ostatecznego odcienia barwy niebieskiej. Koledzy zdziwili się, ile tak na prawdę jest kolorów niebieskich (Pamiętajcie -- są tylko dwa kolory: czarny i biały). Klienci zażyczyli sobie oczywiście możliwość wpychania zdjęć do galerii w liczbie masowej. Pewnie istnieją jakieś gotowe rozwiązania, klasy Java'y, silniki na Flash'u... W HTML/PHP ciężko pomyśleć nawet, o wepchnięciu zawartości całego katalogu na serwer, nawet posiłkując się JavaScript'em. Związane jest to z bezpieczeństwem -- i dobrze. W końcu, gdyby się dało, z każdym kliknięciem pola Submit w jakimkolwiek formularzu wysyłalibyśmy mnóstwo ciekawych informacji. Znam rozwiązanie dobre. Wymagające wiedzy niestety. Pliki przesyła się na serwer dowolnym protokołem, najwygodniejszym oczywiście będzie FTP. Potem linkuje się katalog z bazą danych -- galeria jest. To chyba zbyt skomplikowane! -- powiedział w głos głupek siedzący we mnie. Nie należy wspominać już o pliku tekstowym z nazwami plików. Ludzie nie umieją wpisać ls > listaplikow.txt. Szybko więc należało przekompilować PHP z flagą --enable-zip, włączającą dostęp do funkcji pakunkowych. Efekt jest prosty: na serwer wysyła się jeden plik, galeria już gotowa. Co prawda, łączy się do ze szkoleniem klientów, pokazaniem, jak to archiwum ma wyglądać, ale chyba warto się w to pobawić. Dla ciekawskich, fragment kodu, w którym część rzeczy jest niepotrzebnych i części brakuje:
$uploaddir=".tmp/";
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$nazwa = strtolower($plik_nazwa);
if(is_uploaded_file($plik_tmp)) {
move_uploaded_file($plik_tmp, "$uploaddir$nazwa");
$docelowy="galerie";
$zipa = new ZipArchive();
$zipa->open("$uploaddir$nazwapliku");
$zipa->extractTo("$docelowy/");
$zipa->close();
}
@unlink("$uploaddir$nazwa");Publikowane komentarze są prywatnymi opiniami użytkowników witryny Michała Sternadela. Witryna Michała Sternadela nie ponosi odpowiedzialności za treść tych opinii.
| ||||||||