|
Upload plików
Jedną z bardzo przydatnych funkcji w PHP jest możliwość prostego Uploadu
dowolnych plików na serwer. Poniższy przykład przedstawia najprostszą metodę
zbudowania Uploadera plików. Nie zapomnij w formularzu o dodaniu: enctype="multipart/form-data"
co pozwala na wysłanie informacji z załącznikiem. formularz na stronie wysyłającej:
formularz.htm
------------------------------------------------
<html>
<form name="kopiarka" method="POST"
enctype="multipart/form-data" action="upload.php3">
<input type="hidden" name="ok" value="1">
<input type="hidden" name="MAX_FILE_SIZE" value="10000"><p>Wybierz
plik do przerzucenia:<br>
<input type="file" name="file" size="40"><br>
<br>
<input type="submit" value="Kopiuj"><input type="reset"
value="Reset"></p>
</form>
</html>
skrypt przyjmujący wysłany plik: (katalog do, którego przerzucane będą
pliki oraz w którym znajdzie się skrypt musi mieć ustawione prawa na 777). Wartość formularza
"MAX_FILE_SIZE" określa maksymalny rozmiar pliku w bajtach, jaki może zostać skopiowany.
upload.php3
------------------------------------------------
<html>
<?
if ($ok=="1"){ /* działanie tylko jeśli użyto formularza */
copy("$file", "katalog/$file_name"); /* kopiowanie */
unlink("$file");
echo"Plik został skopiowany<br>
Informacje o skopiowanym pliku:<br>
Nazwa pliku: $file_name<br>
Wielkość pliku: $file_size"; /* Potwierdzenie i informacja o skopiowanym
pliku */
}
else {
echo"Wystapił bład przy kopiowaniu pliku"; /* Informacja o błędzie
*/
}
?>
</html>
Zmienne $file_name oraz $file_size
nadawane są automatycznie, można je zastosować np. stosując inną metodę
blokowania plików jeśli ich wielkość przekracza określony przez nas
maksymalny rozmiar lub mamy wymusić określoną nazwę pliku. Możemy to zrobić
na przykład tak:
<?
if ($ok!="1"){
exit;
}
elseif (($file_size<"10000") &&
($file_name=="foto.jpg")){
copy("$file", "katalog/$file_name");
unlink("$file");
echo"Plik został skopiowany<br>
Informacje o skopiowanym pliku:<br>
Nazwa pliku: $file_name<br>
Wielkość pliku: $file_size bajtów";
}
else {
echo"Wystapił bład przy kopiowaniu pliku.
Zła nazwa lub została przekroczona maksymalna wielkość pliku"; /*
Informacja o błędzie */
}
?>
dodał: Rip
|