PHP — загрузка файла

PHP — загрузка файла

От автора: сегодня мы поговорим о том, как происходит в PHP загрузка файла. Скрипт PHP можно использовать с формой HTML, чтобы пользователи могли загружать файлы на сервер. Первоначально файлы загружаются во временный каталог, а затем перемещаются в место назначения с помощью скрипта PHP.

Информацияна странице phpinfo.php описывает временный каталог, который используется для загрузки файлов, например upload_tmp_dir, а максимальный размер файлов, которые могут быть загружены, указывается как upload_max_filesize. Эти параметры задаются в файле конфигурации PHP php.ini. Процесс загрузки файла выполняется следующим образом:

Пользователь открывает страницу, содержащую HTML-форму с текстовыми файлами, кнопкой Обзор и кнопкой Отправить.

Пользователь нажимает кнопку Обзор и выбирает файл для загрузки с локального ПК.

Полный путь к выбранному файлу отображается в текстовом файле, затем пользователь нажимает кнопку Отправить.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Выбранный файл отправляется во временный каталог на сервере.

PHP-скрипт, который был указан в качестве обработчика формы в атрибуте формы action, проверяет, доставлен ли файл, а затем копирует этот файл в целевую директорию.

Скрипт PHP подтверждает успешное завершение действия.

Как обычно, для временного и целевого каталога должны быть указаны права доступа на запись файлов. Если установлены права «только для чтения», процесс завершится неудачно. Загруженным файлом может быть текстовый файл или файл изображения, или любой документ.

Создание формы загрузки

Приведенный ниже HTML-код создает форму для загрузки. В этой форме для атрибута method задано значение post, а для атрибута enctype — multipart / form-data.

<?php
  if(isset($_FILES['image'])){
 $errors= array();
 $file_name = $_FILES['image']['name'];
 $file_size =$_FILES['image']['size'];
 $file_tmp =$_FILES['image']['tmp_name'];
 $file_type=$_FILES['image']['type'];
 $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
 
 $expensions= array("jpeg","jpg","png");
 
 if(in_array($file_ext,$expensions)=== false){
 $errors[]="extension not allowed, please choose a JPEG or PNG file.";
 }
 
 if($file_size > 2097152){
 $errors[]='File size must be excately 2 MB';
 }
 
 if(empty($errors)==true){
 move_uploaded_file($file_tmp,"images/".$file_name);
 echo "Success";
 }else{
 print_r($errors);
 }
  }
?>
<html>
  <body>
 
 <form action="" method="POST" enctype="multipart/form-data">
 <input type="file" name="image" />
 <input type="submit"/>
 </form>
 
  </body>
</html>

Этот код дает следующий результат:

PHP — загрузка файла

Создание скрипта загрузки

Существует глобальная переменная PHP с именем $_FILES. Эта переменная является ассоциативным двумерным массивом, в ней сохраняется вся информация, связанная с загруженным файлом. Таким образом, если в элементе управления формы атрибуту name было присвоено значение file, тогда PHP создаст следующие пять переменных -

$ _FILES ['file'] ['tmp_name'] — загруженный файл во временный каталог на веб-сервере.

$ _FILES ['file'] ['name'] — фактическое имя загруженного файла.

$ _FILES ['file'] ['size'] — размер в байтах загруженного файла.

$ _FILES ['file'] ['type'] — MIME-тип загруженного файла.

$ _FILES ['file'] ['error'] — код ошибки, связанный с этой загрузкой файла.

Ниже приведен пример загрузки изображений и возврата результатов в виде информации о загруженном файле.

<?php
  if(isset($_FILES['image'])){
 $errors= array();
 $file_name = $_FILES['image']['name'];
 $file_size = $_FILES['image']['size'];
 $file_tmp = $_FILES['image']['tmp_name'];
 $file_type = $_FILES['image']['type'];
 $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
 
 $expensions= array("jpeg","jpg","png");
 
 if(in_array($file_ext,$expensions)=== false){
 $errors[]="extension not allowed, please choose a JPEG or PNG file.";
 }
 
 if($file_size > 2097152) {
 $errors[]='File size must be excately 2 MB';
 }
 
 if(empty($errors)==true) {
 move_uploaded_file($file_tmp,"images/".$file_name);
 echo "Success";
 }else{
 print_r($errors);
 }
  }
?>
<html>
  <body>
 
 <form action = "" method = "POST" enctype = "multipart/form-data">
 <input type = "file" name = "image" />
 <input type = "submit"/>
 
 <ul>
 <li>Sent file: <?php echo $_FILES['image']['name'];  ?>
 <li>File size: <?php echo $_FILES['image']['size'];  ?>
 <li>File type: <?php echo $_FILES['image']['type'] ?>
 </ul>
 
 </form>
 
  </body>
</html>

Этот код дает следующий результат:

PHP — загрузка файла

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree