PHP скрипт загрузки файлов

В прошлый раз мы рассмотрели вариант формы для загрузки файла. Сегодня подробно разберем скрипт-обработчик загрузки файла на языке php.

Код файла обработчика следующий:
 

 

 

Скрипт загрузки файлов на сервер php

В данном примере мы рассмотрим вариант скрипта загрузки файлов  на сервер php. Для простоты примера будем загружать на сервер файлы графического формата. 

В начале присваиваем переменной $_POST[‘action’] значение $action, затем проверяем содержит ли $action значение send. Если равенство $action==”send” верно, значит данные пришли именно из нашей формы и запускаем работу скрипта.

Далее, проверяем наличие файла в глобальном массиве $_FILES, проверяем существование файла при помощи функции empty()

if(empty($_FILES[‘myfile’][‘name’])),

если глобальная переменная $_FILES пустая, прекращаем работу скрипта и выводим ошибку («Вы не выбрали файл для загрузки»).
 

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

Проверяем размер загружаемого файла. Это очень просто - все прописано в любом файле в самом массиве $_FILES[`myfile`][`size`];  Допустимый размер вы задаете сами в переменной $filSIZE=10000; Напишите любое число которое вам нужно. Если с объемом файла все в порядке и он не превышает вами заданный размер, можно приступать к загрузке файла на ваш сервер.

Тут есть один нюанс: название файла можно менять или переименовать его по своим правилам.

А для чего?
 

Названия многих файлов могут совпадать и содержать одни и те же имена. Например, 1.jpg, file.jpg, default.png и так далее. Вариантов масса и если имена совпадут, своего нужного файла вы не найдете. Поэтому будем переименовывать файлы по своему алгоритму.

Как создать уникальное имя для своего файла?

Об этом написана целая тема и прочитать можно здесь. А пока идем дальше. Копируем временный файл $_FILES[‘myfile’][‘tmp_name’] в ту директорию или папку, где будут храниться все файлы, которые вы будете загружать к себе на сервер.
 

В нашем случае мы пропишем название директории в переменной $dir.
Все, скопировали файл в нужную директорию, теперь запишем все данные в базу данных.

Зачем?

Чтобы можно было быстро найти наш файл по его id из базы данных. А в папке их может быть сколько угодно. Хоть тысяча, хоть десять миллионов. Все зависит от сервера на котором установлена форма для загрузки файла.
 

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


( ! ) Ф.И.О.
( ! ) Текст сообщения: (Не больше 5000 знаков)

( ! )Введите текст с картинки :
Обновить код
Положительный отзыв Положительный отзыв
Отрицательный отзыв Отрицательный отзыв



Коллекция скриптов и модулей   © 2017