Загрузка и скачивание файла в PHP

28 мая 2020 - Администратор

Загрузка файла на сервер и скачивание файла с сервера в PHP

С помощью PHP можно загружать файлы на сервер и скачивать файлы с сервера. То есть, с помощью PHP можно легко организовать хранилище  файлов,  галерею.
 Разберём, как создать на PHP загрузчик файлов на сервер
Чтобы организовать  загрузку файла на сервер в PHP скрипте, необходимо использовать multipart-форму с полем ввода типа file. В атрибуте формы enctype необходимо указать multipart/form-data
Общий вид формы загрузки файла в PHP
<form name="form" enctype="multipart/form-data" method="post">
<input type="file" name="upload_file" title="Выберите файл"/> </br>
<input type="submit" value = "Загрузить файл" name="button" /></br>
</form> 

Здесь используется  поле ввода для файла input type="file" Использование этого поля отображает на веб странице форму загрузки файла. upload_file  - это имя загружаемого файла.  
 форма загрузки файла в php
При обработке формы вся информация о файле в PHP записывается в глобальный массив $_FILES  Основные значения глобального массива $_FILES:
$_FILES['upload_file']['name'] - имя файла до его отправки на сервер
$_FILES['upload_file']['size'] - размер загруженного файла в байтах;
$_FILES['upload_file']['type'] -  тип загруженного  файла 
$_FILES['upload_file']['tmp_name']  - имя загруженного файла во временном каталоге
$_FILES['upload_file']['error'] - Код ошибки, которая может возникнуть при загрузке файла. 
Указываем путь, куда необходимо загрузить файл
$переменная файла = "путь".$_FILES['upload_file']['name'];
Перед загрузкой файла в указанную папку,  для безопасности  он сохраняется   во временную директорию. Путь к временному файлу указан в глобальном массиве $_FILES['upload_file']['tmp_name']
Чтобы файл загрузить в нужную папку из временной директории, используем  команду
move_uploaded_file($_FILES['upload_file']['tmp_name'], $переменная файла); 
После загрузки файла делаем проверку на существование загружаемого файла и выводим информацию о  загруженном файле.
if(isset($_FILES['upload_file']['name']))
  {
echo "Загруженный файл: ".$_FILES['upload_file']['name']."</br>";
echo "Размер: ".$_FILES['upload_file']['size']."байт";
}

Полный PHP код скрипта загрузчика файла. Для примера загружается файл с именем itrobo.jpg, после загрузки файла выводится информация  о загруженном файле и загруженный файл на веб страницу.
<html>
<head>
<title></title>
</head>
<body>
<form name="form" enctype="multipart/form-data" method="post">
<input type="file" name="upload_file" title="Выберите файл"/> </br>
</br>
<input type="submit" value = "Загрузить файл" name="button" /></br>
</form>
</body>
</html>
<?php
  $file = "upload/".$_FILES['upload_file']['name'];
  move_uploaded_file($_FILES['upload_file']['tmp_name'], $file);
  if(isset($_FILES['upload_file']['name']))
  {
echo "Загруженный файл: ".$_FILES['upload_file']['name']."</br>";
echo "Размер: ".$_FILES['upload_file']['size']."байт";
echo '<p><img src="upload/itrobo.jpg" width="200" height="200" alt="image"></p>';
}
?>

Пример вывода скрипта на веб страницу
загрузка файла на сервер в php


Скачивание файла с сервера с помощью PHP
Чтобы скачать файл с сервера  в PHP, используется следующая конструкция
$переменная файла = путь к файлу;
header('Content-Type: тип файла);
header('Content-Disposition: attachment; filename="имя файла"');
readfile($переменная файла);

Пример скачивания файла с сервера с помощью PHP
$file = 'upload/itrobo.jpg';
header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename="itrobo.jpg"');

Напишем пример PHP скрипта, который выводит на веб страницу изображение с кнопкой "Загрузить!". При нажатии на кнопку "Загрузить!",  картинка скачивается с веб сервера на компьютер.
Скрипты, в которых идёт вызов команды "Header", необходимо  сохранять в кодировке UTF-8 без BOM. Это можно сделать с помощью редактора Notepad++.  PHP обработчик следует писать в самом  начале страницы.
Создаём HTML форму с кнопкой "Загрузить!". Она нужна для того, чтобы загрузить  PHP обработчик скачивания файлов. Размещаем изображение на веб странице.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
</head>
<body>

Тег для вывода  изображения в форме. Подробнее  о работе с  формами в PHP
<p><img src="upload/itrobo.jpg" width="400" height="400" alt="itrobo"></p>
<form name="form1" method="post">
</br>
<input type="submit" name="info" value="Загрузить!"> </br>
</body>
</html>

Напишем PHP обработчик кнопки Если кнопка нажата,  скачиваем файл
<?
if(isset($_POST['info'])) {
$file = 'upload/itrobo.jpg';
header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename="itrobo.jpg"');
readfile($file);
}
 ?>

Полный код PHP скрипта для скачивания файла с сервера

<?
if(isset($_POST['info'])) {
$file = 'upload/flower.jpg';
header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename="itrobo.jpg"');
readfile($file);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
</head>
<body>
<p><img src="upload/itrobo.jpg" width="400" height="400" alt="icon"></p>
<form name="form1" method="post">
</br>
<input type="submit" name="info" value="Загрузить!"> </br>
</body>
</html>

Пример вывода скрипта на веб страницу

скачивание файла в php

Вернуться к содержанию курса по PHP 

Полезно : Регистрация домена и размещение сайта на хостинге

Поделиться 

 
 
Комментарии (0)

Нет комментариев. Ваш будет первым!