Последние учебники веб-разработки
×

PHP Руководство

PHP ГЛАВНАЯ PHP вступление PHP устанавливать PHP Синтаксис PHP переменные PHP Echo / Версия для печати PHP Типы данных PHP Строки PHP Константы PHP операторы PHP If...Else...Elseif PHP Switch PHP В то время как Loops PHP Для Loops PHP функции PHP Массивы PHP Сортировка массивов PHP Суперглобальные

PHP обращение

PHP форма обращение PHP форма Проверка PHP форма необходимые PHP форма URL/E-mail PHP форма полный

PHP продвинутый

PHP Массивы Мульти PHP Дата и время PHP Включают PHP файл обращение PHP файл Открыть / Read PHP файл Создание / запись PHP файл Загрузить PHP Cookies PHP Sessions PHP фильтры PHP Filters продвинутый PHP Ошибка обращение PHP исключение

MySQL Database

MySQL База данных MySQL соединение MySQL Create DB MySQL Create Таблица MySQL Insert Data MySQL Получить Последняя ID MySQL Вставка нескольких MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Парсеры PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX вступление AJAX PHP AJAX База данных AJAX XML AJAX Live Search AJAX RSS Reader AJAX Голосование

PHP Examples

PHP Примеры PHP викторина PHP сертификат

PHP Справка

PHP массив PHP Календарь PHP Дата PHP каталог PHP Ошибка PHP Файловая система PHP Фильтр PHP FTP PHP HTTP PHP Libxml PHP почта PHP математический PHP Разное PHP MySQLi PHP SimpleXML PHP строка PHP XML PHP Zip PHP Часовые пояса

 

PHP 5 загрузки файлов


С PHP, легко загружать файлы на сервер.

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


Настройте "php.ini" Файл

Во-первых, убедитесь, что PHP настроен для загрузки файла.

В вашем "php.ini" файл, поиск директивы file_uploads, и установите его в On:

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 форму выше:

  • Убедитесь, что форма использует метод = «пост»
  • Форма также нуждается в following атрибуте: ENCTYPE = «многочастные / форм-данных». Он определяет, какой тип содержимого использовать при отправке формы

Без указанных выше требований, загрузка файла не будет работать.

Другие вещи, чтобы заметить:

  • type="file" атрибут <input> тег показывает поле ввода в виде файла-выберите управления, с "Browse" кнопку рядом с полем ввода

Форма выше отправляет данные в файл с именем "upload.php" , который мы будем создавать следующие.


Создать The Загрузить файл PHP Script

"upload.php" файл содержит код для загрузки файла:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = 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/" - определяет каталог , в котором файл будет помещен
  • $ Целевой_файл указывает путь к файлу, который будет загружен
  • $ uploadOk = 1 еще не используется (will be used later) в (will be used later)
  • $ 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" .

Теперь мы хотим, чтобы проверить размер файла. Если файл больше, чем 500kb, отображается сообщение об ошибке, и $ uploadOk устанавливается в 0:

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

Тип файла Limit

Код ниже только позволяет пользователям загружать файлы 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 = 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.";
    }
}
?>

Полное PHP Filesystem Reference

Для полного ведения функций файловой системы, перейдите на наш полный PHP Filesystem Reference .