Загрузка и скачивание файла в PHP
Загрузка файла на сервер и скачивание файла с сервера в 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 записывается в глобальный массив $_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, используется следующая конструкция
$переменная файла = путь к файлу;
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
Полезно : Регистрация домена и размещение сайта на хостинге
Поделиться
Нет комментариев. Ваш будет первым!