Upload dużych plików

Najłatwiejszym i najmniej pracochłonnym sposobem wysyłania polików na serwer jest użycie FTP. Jest to oczywiście moja opinia. Problem w tym że większość użytkowników internetu preferuje wysyłanie plików za pośrednictwem strony www. Nie można z tym walczyć, można jedynie taki sposób wysyłania plików udostępnić na stronie. Jednak taki sposób niestety obciąża serwer www znacznie bardziej niż użycie protokołu ftp. Dlatego też większość współdzielonych serwerów www nakłada ograniczenia co do wielkości plików wysyłanych prze http.

Istnieje kilka rozwiązań tego problemu. Jeżeli hosting pozwala tworzyć pliki .htaccess wystarczy odpowiednia zawartość tego pliku uzupełnić o taką treść.

max_execution_time = 60 (czas w sekundach wykonywania skryptu, 0 – bez ograniczeń)
upload_max_filesize = 2M
post_max_size = 8M (musi być wiekszy od upload_max_filesize)
max_input_time = 90 (czas ładowania w sekundach)
memory_limit = 8M

Jeżeli mamy dostęp do pliku php.ini musimy odnaleźć w nim powyższe parametry i odpowiednio zmodyfikować. Plik .htaccess ma jednak ważną zaletę. Zmiany dotyczące konfiguracji uploadu plików przez php mogą dotyczyć wybranego pliku/katalogu. Dzięki temu nie wpływamy na działanie całej strony.

Można jeszcze zastosować skrypt php aby na czas jego wykonywania zwiększyć limity.

<?php
ini_set(‚upload_max_filesize’, ‚2M’);
ini_set(‚post_max_size ‚, ‚8M’);
?>

Można też spróbować za pomocą php dzielić plik na części i rozłożyć jego upload w czasie. Jednak takie rozwiązanie mi osobiście się nie podoba.

Tego typu sztuczki będą działać jeżeli mamy dobre kontakty z adminem serwera. Jeżeli duże pliki mają być wysyłane często to trzeba użyć innych sposobów.

Ja w poszukiwaniu rozwiązania dotarłem do appletów java. Appletów tego typu jest cała masa w internecie. Są rozwiązania komercyjne i darmowe. Ja zdecydowałem się wybrać jeden z najprostszych skryptów. Rozwiązanie jest o tyle ciekawe że wykorzystuje protokół FTP.

image

Skrypt nazywa się ZUpload i jest darmowy. Konfiguracja jest bardzo prosta. Wystarczy wstawić odpowiedni kod na stronę.

<applet code=”ZUpload” Archive=”ZUpload.jar” width=”450″ height=”300″ border=”0″>
<param name=”host” value=”naszftp.pl”>
<param name=”user” value=”user”>
<param name=”pass” value=”password”>
<param name=”path” value=”./katalog/”>
<param name=”postscript” value=”url_of_script”>
</applet>

Trzeba jednak pamiętać żeby stworzyć oddzielne konto ftp dla tego skryptu, ponieważ wszystkie informacje są jawnie dostępne w kodzie strony.

Innym ciekawym darmowym skryptem jest Jupload.