Настало время рассказать вам дорогие друзья про класс загрузки файлов, изображений и их обработки. Upload Class PHP - работает с версиями php начиная от 4 и вплоть до самой последний на данный момент (7 версии). Класс умеет многое, начиная от загрузки файлов и изображений и заканчивая конвертацией форматов, изменениями размеров, созданием копий, переименовыванием, накладыванием водяных знаков и многое другое.
В данной статье я бы хотел рассказать о нем и показать его основные и самые популярные функции для рядового пользователя. Если вы создаете какой-то сайт, то вам возможно понадобится загрузка изображений или файлов, а соответственно чтобы облегчить написание кода, данный класс поможет вам. Переписывать всю документацию смысла нет, если конечно кому-то нужно будет, то пишите какие функции вас интересуют, дополню или статью или в комментариях отвечу.
Загрузка изображений на сайт через Class Upload PHP:
Для начала нужна форма, форма для примера будет самая стандартная:
<form enctype="multipart/form-data" method="post" action="upload.php"> <input type="file" size="32" name="image"> <input type="submit" name="submit" value="Загрузить"> </form> |
Файл обработчик с подключенным классом загрузки (upload.php):
if (!empty($_FILES)) { // Подключаем файл (укажите полный путь до файла class.upload.php) include('class.upload.php'); // Создадим объект класс, где $_FILES['image'] - изображение (может быть ссылкой или элементом массива $_FILES) $handle = new upload($_FILES['image']); if ($handle->uploaded) { // Переименовываем изображение $handle->file_new_name_body = 'new_file_name'; // Во избежании загрузки изображений с одинаковыми названиями, добавляем дату в unix формате как префикс $handle->file_name_body_pre = strtotime(date("Y-m-d H:i:s")).'-'; // Разрешаем изменять размер изображения $handle->image_resize = true; // Изменяем ширину изображения на 200px $handle->image_x = 200; // Изменяем высоту изображения на 200px $handle->image_y = 200; // Отключаем сохранение соотношения сторон в зависимости от ширины $handle->image_ratio_y = false; // Указываем путь к водяному знаку для изображения $handle->image_watermark = $_SERVER['DOCUMENT_ROOT'].'/images/watermark/watermark.png'; // Загружаем изображения в папку images $handle->process($_SERVER['DOCUMENT_ROOT'].'/images/'); // Обработаем и сохраним наш файл if ($handle->processed) { $handle->clean(); } else { echo 'error : ' . $handle->error; } } } |
Собственно и все, все строчки подписаны для вашего удобства. Как видите код достаточно короткий получился и вполне удобный на мой взгляд. Кроме того все необходимые проверки в классе уже есть и писать отдельно вам не нужно ничего. С файлами все тоже самое, только их само собой не нужно, а так все также будет примерно.
Переменные из документации Upload Class PHP:
Переменные, которые можно просмотреть до обработки изображения и вызова $handle->Process([путь сохранения файла]): и до вызова $handle->clean():
- $handle-> file_src_name – имя файла до обработки;
- $handle->file_src_name_body – имя файла без расширения до обработки;
- $handle->file_src_name_ext – расширение файла до обработки;
- $handle->file_src_pathname – полный путь к файлу;
- $handle->file_src_size – размер файла;
- $handle->file_src_error – ошибка во время обработки/загрузки файла;
- $handle->file_is_image – является ли файл изображением?
- $handle->image_src_x – ширина изображения?
- $handle->image_src_y – высота изображения?
- $handle->image_src_pixels – сколько пикселей всего?
- $handle->image_src_type – тип изображения.
Переменные, которые можно просмотреть после обработки изображения и вызова $handle->Process([путь сохранения файла]): и до вызова $handle->clean():
- $handle-> file_dst_path – путь к файлу после обработки;
- $handle->dst_name_body – имя файла без расширения после обработки;
- $handle->file_dst_name_ext – расширение изображения после обработки;
- $handle->file_dst_name – имя файла после обработки;
- $handle->file_dst_pathname – полный путь к файлу после обработки;
- $handle->image_dst_x – ширина обработанного изображения;
- $handle->image_convert – тип преобразованного изображения.
Скачать с GitHub: Upload Class PHP
Вот пожалуй и все, все функции и методы данного класса вы можете найти в официальной документации. Но так как она на английском, то если вам будет непонятно что-то, пишите в комментарии, спрашивайте и будем вместе решать проблемы.