Przesyłanie danych z formularza za pomocą metody MOVE
Założenie: Nauczymy się, jak przesłać dane z formularza HTML do skryptu PHP za pomocą funkcji move_uploaded_file()
, która przenosi przesłany plik na serwer.
Krok po kroku:
- Utworzenie formularza HTML: Utworzymy prosty formularz, który pozwala na przesłanie pliku.
- Skrypt PHP (upload.php): Ten skrypt przetworzy przesłane dane.
<form action="upload.php" method="post" enctype="multipart/form-data">
Wybierz plik: <input type="file" name="plik">
<input type="submit" value="Wyślij">
</form>
Atrybut enctype="multipart/form-data"
jest niezbędny do przesyłania plików.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/"; // Miejsce docelowe dla pliku
$target_file = $target_dir . basename($_FILES["plik"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Sprawdzenie, czy plik został przesłany
if(isset($_FILES["plik"])) {
// Sprawdzenie rozmiaru pliku
if ($_FILES["plik"]["size"] > 500000) { // 500KB
echo "Przepraszam, Twój plik jest za duży.";
$uploadOk = 0;
}
// Sprawdzenie typu pliku (można rozszerzyć)
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg") {
echo "Przepraszam, tylko pliki JPG, JPEG i PNG są dozwolone.";
$uploadOk = 0;
}
// Sprawdzenie, czy $uploadOk jest równe 0, to znaczy, że wystąpił błąd
if ($uploadOk == 0) {
echo "Przepraszam, Twój plik nie został przesłany.";
// Jeśli wszystko jest w porządku, spróbuj przesłać plik
} else {
if (move_uploaded_file($_FILES["plik"]["tmp_name"], $target_file)) {
echo "Plik ". htmlspecialchars( basename( $_FILES["plik"]["name"])). " został przesłany.";
} else {
echo "Przepraszam, wystąpił błąd podczas przesyłania pliku.";
}
}
}
}
?>
Funkcja move_uploaded_file()
przenosi plik z tymczasowej lokalizacji na serwerze do określonego katalogu. Pamiętaj o utworzeniu katalogu “uploads/” w tym samym katalogu co skrypt.
Ten przykład pokazuje podstawy przesyłania plików za pomocą metody MOVE. Zachęcamy do dalszego zgłębiania tematu, aby poznać zaawansowane techniki walidacji i bezpieczeństwa plików przesyłanych przez użytkowników.