Jak zrobić upload pliku z dysku lokalnego na serwer

Do tego celu użyjemy prostego formularza z polem typu file. Formularz, aby mógl przesyłać pliki binarne musi mieć dodatkowy atrybut w znaczniku <form>, a mianowicie enctype="multipart/form-data". Wprowadziliśmy także ograniczenie wielkości przesłanego pliku do 50KB za pomocą ukrytego pola o nazwie MAX_FILE_SIZE.

A oto gotowy do użycia kod:

<?php
echo '<?xml version="1.0" encoding="iso-8859-2"?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<title>Upload</title>
</head>
<body>

<div>
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="50000" />
<input name="plik" type="file" />
<input type="submit" value="Wyślij plik" />
</form>
</div>

<?php
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];

if(is_uploaded_file($plik_tmp)) {
     move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
    echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze 
    <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
}
?>
</body>
</html>

Dodać należy tylko, że folder "upload" do którego kopiujemy plik na serwer powinien mieć prawa do zapisu dla wszystkich (chmod 777).

 

Projekt © 2009 - INFOPROG 70166 odwiedzin