PHP 5 about PHP 5 старт PHP 5 установка PHP 5 синтаксис PHP 5 змінні PHP 5 echo і print PHP 5 типи даних PHP 5 strings PHP 5 константи PHP 5 оператори PHP 5 if...else...elseif PHP 5 switch PHP 5 цикл while PHP 5 for і foreach PHP 5 функції PHP 5 масиви PHP 5 сортування масивів PHP 5 superglobals PHP 5 форми input PHP 5 форми обробка PHP 5 форми - обов'язкові поля PHP 5 форми - перевірка електронної пошти і URL РНР 5 форми заповнення PHP 5 багатовимірні масиви PHP 5 час і дата PHP 5 include PHP 5 файли обробка PHP 5 файли Open/Read/Close PHP 5 файли створення / запис PHP 5 файли завантаження PHP MySQL бази даних PHP MySQL Підключення PHP MySQL Створення бази даних PHP MySQL Створення таблиці PHP MySQL вставка даних PHP MySQL Отримання ідентифікатора останнього доданого запису PHP MySQL вставка кількох записів PHP MySQL Підготовлені вирази PHP MySQL відображення даних з таблиці PHP MySQL Видалення даних PHP MySQL оновлення даних PHP MySQL обмежити вибірку даних PHP регулярні вирази 1 PHP регулярні вирази 2 PHP регулярні вирази 3 PHP регулярні вирази 4 PHP ООП PHP ООП class PHP ООП модифікатори доступу PHP ООП extends PHP ООП статичні методи і властивості, константи PHP ООП abstract PHP ООП interface PHP альтернативний синтаксис керуючих конструкцій

PHP 5 файли завантаження


З PHP, легко завантажувати файли на сервер.

Проте, з легкістю приходить небезпека, тому завжди будьте обережні, коли дозволяєте завантаження файлів!


Налаштуйте php.ini файл

По-перше, переконайтеся, що PHP налаштований для завантаження файлу.

Знайдіть файл php.ini , і встановіть в ньому значення:

file_uploads = On

Створення HTML-форми

Далі створіть форму HTML, яка дозволяє користувачам вибрати файл зображення, яке вони хочуть завантажити:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

Деякі правила, щоб слідувати за HTML формою вище:

  • Переконайтеся, що форма використовує method="post"
  • Форма також має необхідний наступний атрибут: enctype="multipart/form-data" . Він визначає, який тип вмісту використовувати при відправці форми

Без зазначених вище вимог, завантаження файлу не буде працювати.

Інші речі, на замітку:

  • Атрибут type="file" тега  <input> показує поле вводу у вигляді вибору файлу , за допомогою кнопки Browse поруч з вхідним контролем

Форма вище відправляє дані в файл з ім'ям upload.php , які ми будемо відправляти на сервер.


PHP скрипт для загрузки файла

Файл upload.php містить код для завантаження файлу:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
?>

PHP скрипт пояснення:

  • $target_dir = "uploads/" - визначає каталог, в який файл буде поміщений
  • $target_file вказує шлях до файлу, який буде завантажений
  • $uploadOk=1 не використовується (буде використовуватися в подальшому)
  • $imageFileType має розширення файлу файлу (в нижньому регістрі)
  • Потім перевірте, якщо файл зображення є реальним зображенням або підробленими зображеннями

Примітка: Вам потрібно буде створити новий каталог під назвою uploads в директорії, де знаходиться файл upload.php . Завантажені файли будуть збережені там. 


Перевірте файл на існування

Тепер ми можемо додати деякі обмеження.

По-перше, ми будемо перевіряти, якщо файл вже існує в папці "uploads" . Якщо це станеться, то виводиться повідомлення про помилку, і $uploadOk встановлюється в 0:

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

Обмеження розміру файлу

Поле вводу файлу в нашій HTML формі вище названо fileToUpload .

Тепер ми хочемо перевірити розмір файлу. Якщо файл більше 500 КБ, відображається повідомлення про помилку, і $uploadOk встановлюється в 0:

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

Обмеження типу файлу

Код нижче дозволяє користувачам завантажувати файли тільки JPG, JPEG, PNG, GIF і файли. Всім іншим типам файлів видає повідомлення про помилку перед установкою $uploadOk в 0:

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

Повний PHP скрипт для завантаження файлів

Повний файл upload.php тепер виглядає наступним чином:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

 


Наш партнер:
beta test mp3 playlist downloader