move_uploaded_file
move_uploaded_file — функция для перемещения загруженного файла в указанное место пользователем!
На сайте довольно часто используется функция "move_uploaded_file" - попробуем разобраться - как она работает!!
Подробно о move_uploaded_file
- Разбор синтаксиса move_uploaded_file
- Пример работы функции move_uploaded_file
- Пример move_uploaded_file с проверкой существования файла
- Проверить отправлен файл move_uploaded_file php
- Ошибки move_uploaded_file php.
Синтаксис move_uploaded_file:
move_uploaded_file(string $from, string $to): bool
расшифровка синтаксиса move_uploaded_file:
move_uploaded_file - название функции, которая состоит из трех английских слов:
move - двигаться, перемещать(, переезжать глагол. Движение, шаг, переезд существительное.)
uploaded - загруженный(причастие. Загружать глагол.)
file - файл существительное.
string $from:
строка string
$from - откуда(путь)
string $to - строка, куда(путь)
Тип возвращаемого значения "bool"(либо (true), либо (false))
В случае успешного выполнения возвращает true.
Если from(путь) не является файлом, никаких действий не происходит и move_uploaded_file() возвращает false.
Если from является файлом, но не может быть перемещён по каким-либо причинам, никаких действий не происходит и move_uploaded_file() возвращает false. Кроме того, отображается предупреждение.
Если по месту перемещения файл уже существует, то он будет перезаписан.
Чтобы этого не происходило - требуется написать дополнительное условие...
Пример работы функции move_uploaded_file
Для того, чтобы проверить/посмотреть пример работы функции move_uploaded_file нам понадобится:
Форма для загрузки файлов.
И код php, который обработает + функция "move_uploaded_file"
Форма для использования с move_uploaded_file
Использованные элементы:
form - тег.
post - метод.
enctype="multipart/form-data" - способ кодирования данных формы при их отправке на сервер.
type= "file" - один из типов input.
type= "submit" - один из типов input.
Соберем весь код формы:
Код использования формы для move_uploaded_file.
<form method="post" enctype="multipart/form-data">
<input type="file" name="uploading">
<input type="submit" value="Отправить">
</form>
вывод формы для move_uploaded_file.
php код + move_uploaded_file
Простейший пример кода с использованием move_uploaded_file... использованные элементы:
if/else - условия в php. Если ошибка существует, то выводим номер ошибки.:
То выводим ошибку:
точка - знак присоединения.
$_FILES - глобальный массив "$_FILES".
__DIR__ - путь до папки, где располагается скрипт.
<?
if ( $_FILES['uploading']['error'] ) {
echo 'Error: ' . $_FILES['uploading']['error'] ;
}
else
{
move_uploaded_file($_FILES['uploading']['tmp_name'], __DIR__.'/' . $_FILES['uploading']['name']);
}
?>
Пример move_uploaded_file с проверкой существования файла
И бонусом... проверка существования файл при попытке перемещения файла по существующему пути к файлу:
От предыдущего пункта... + использованные элементы:
move_uploaded_file с проверкой существования файла
<?
if ( $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['uploading']['error'] . '<br>';
}
else
{
if(is_file(__DIR__.'/' . $_FILES['uploading']['name']))
{
echo 'Такой файл уже существует';
}
else
{
move_uploaded_file($_FILES['uploading']['tmp_name'], __DIR__.'/' . $_FILES['uploading']['name']);
}
}
?>
Проверить отправлен файл move_uploaded_file php
Один из интересных поисковых запросов - "Проверить отправлен файл move_uploaded_file php" - который меня заинтересовал...
Выше мы разобрали проверка существования файла перед перемещением файла в запланированную папку.
Т.е. - это была проверка "
Для этого нам понадобится:
Для удобства помещаем путь перемещаемого файла в переменную:
Перемещаем файл по указанному файлу...
Создаем условие проверки существования файла по указанному пути:
{
echo 'Файл перемещен с помощью move_uploaded_file';
}
else
{
echo 'Что-то пошло не так...';
}
Соберем весь код проверки перемещён ли файл с помощью move_uploaded_file или нет?
Код проверки отправлен файл move_uploaded_file php?
<?
$new_path_file = __DIR__.'/' . $_FILES['uploading']['name'];
move_uploaded_file($_FILES['uploading']['tmp_name'], $new_path_file );
if(is_file( $new_path_file ))
{
echo 'Файл перемещен с помощью move_uploaded_file';
}
else
{
echo 'Что-то пошло не так...';
}
?>
Ошибки move_uploaded_file php.
При возникновении ошибки, выдаст код из первого столбца.
Код | Константа | Описание |
0 | UPLOAD_ERR_OK | Ошибок не возникло, файл успешно загружен на сервер. |
1 | UPLOAD_ERR_INI_SIZE | Размер файла превысил максимально допустимый размер, который задан директивой upload_max_filesize |
2 | UPLOAD_ERR_FORM_SIZE | Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме. |
3 | UPLOAD_ERR_PARTIAL | Загружаемый файл был получен только частично. |
4 | UPLOAD_ERR_NO_FILE | Файл не был загружен. |
6 | UPLOAD_ERR_NO_TMP_DIR | Отсутствует временная папка. |
7 | UPLOAD_ERR_CANT_WRITE | Не удалось записать файл на диск (возникает, когда на хостинге закончилось место). |
8 | UPLOAD_ERR_EXTENSION | PHP-расширение остановило загрузку файла. |
Пример ошибки если move_uploaded_file
Array
(
[uploadimg] => Array
(
[name] => 3PTzWen10Ds.png
[type] =>
[tmp_name] =>
[error] => 2
[size] => 0
)
)
