Как загрузить файл на сервер
"php загрузка файла" или "Как загрузить файл на сервер". Для загрузки на сервер файла - нам потребуется форма!
Подробно о загрузке файла на сервер в php.
- Форма для загрузки файла через php
- Php скрипт загрузки на сервер. Php загрузка файлов пример скачать
- Php скрипт загрузки нескольких файлов на сервер. Php загрузка файлов пример скачать
- Имя файла при загрузке на сервер php.
Форма для загрузки файла через php
Для того, чтобы создать форму для отправки файла на сервер нам потребуется:
Тег form
метод... нам нужен post
Для отправки файла нам потребуется дополнительный атрибут "enctype"
Внутри формы у нас должен быть input с типом file
Соберем всю форму для отправки данных о файле на сервер:
<form method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Отправить">
</form>
Результат вывода формы для загрузки файла на сервер php.
Php скрипт загрузки на сервер.
Самый простой скрипт, который даже не скрипт, а пара строк, которые обработают ваш post "запрос". В прошлый раз я уже использовал данный файл при загрузке файла одним из других способов....
Все данные по загруженному файлу через php сидит в массиве $_FILES, поскольку это массив, то его можно вывести с помощью print_r - это для того, чтобы понимать, что же отправляет post, при загрузке файла ...
move_uploaded_file - функция, которая переместит файл загруженный php во временную папку, в ту папку, которую вы укажите. В данном примере файл загрузится в ту папку, в который находится файл php.
Используем __DIR__ + сохраняем изначальное имя файла - $_FILES['file']['name']
И далее проверяем с помощью is_file - был ли загружен файл с помощью php.
Соберем весь код php загрузки файла:
<?
move_uploaded_file($_FILES['file']['tmp_name'], __DIR__.'/' . $_FILES['file']['name']);
if(is_file(__DIR__.'/' . $_FILES['file']['name']))
{
echo 'файл загружен';
}
else
{
echo 'файл не загружен';
}
?>
Результат загрузки файла на сервер:
В пример добавил вывод print_r
Php скрипт загрузки нескольких файлов на сервер.
Предположим, что нам требуется загрузить сразу несколько файлов с помощью php на сервер!
Форма для загрузки нескольких файлов на сервер php
<form method="post" enctype="multipart/form-data">
<input type="file" name="file[]"><br>
<input type="file" name="file[]"><br>
<input type="file" name="file[]"><br>
<input type="submit" value="Отправить">
</form>
Php загрузка нескольких файлов на сервер.
Это самый простой способ и пример - как получить и обработать массив "$_FILES".
Используется в коде __DIR__...
Подробнее о массиве $_FILES
<?
if ($_FILES)
{
for($i=0; $i<count($_FILES['file']['name']); $i++)
{
move_uploaded_file($_FILES['file']['tmp_name'][$i], __DIR__.'/' . $_FILES['file']['name'][$i]);
}
}
?>
О загрузке нескольких файлов на сервер php:
Для того чтобы понять - как данный код работает, вам нужно в момент загрузки вывести массив с помощью print_r:
Для вас я сделал живой пример, который вернет массив:
И далее вам понадобятся знания о том, что такое массив.
И как его обрабатывать в цикле.
Имя файла при загрузке на сервер php.
При загрузке файла/файлов/множества файлов может возникнуть проблема "имени загружаемого файла".
Сколько вариантов можно использовать?
1). Оставляем оригинальное имя загружаемого файла на сервер php:
Один из способов создании имени загружаемого файла на сервере - это оставить оригинальное имя файла. В этом пункте я как раз оставлял оригинальное имя загружаемого файла на сервер.
В ячейке массива "$_FILES['file']
move_uploaded_file($_FILES['file']['tmp_name'], __DIR__.'/' . $_FILES['file']
2). Использовать уникальный id для имени загружаемых файлов?
Использовать уникальный id - который никогда не повторяется.
Данная конструкция вернет число, без "разрешения", то нам нужно получить разрешение файла! Здесь предупреждение! Что ячейка [type] во втором значении иногда не возвращает разрешение... на скрине ниже... пример загрузки "txt" файла:
Поэтому получим разрешение из ячейки ['name'](этот способ не безопасен для получения реального разрешения файла(при использовании сторонними пользователями) - для этого лучше использовать(например) finfo )
Используем explode + end впереди поставим точку
Получим примерно :
3). Как нумеровать имена загружаемых файлов?
Если в вашем варианте предполагается "повторение имен"(
О нумерации :
Как-то я писал функцию специально для нумерации файлов4). Использовать дату в именах загружаемых файлов?
Если предполагается загрузка фалов не чаще секунды, тогда можно использовать :
Выведем через echo date('Y-m-d-H-i-s');
Опять нужно разрешение:
Получим :
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: