@crack_user

Почему не сохраняется первый файл?

Есть два input с name = file[]

После отправки формы - почему-то сохраняется только второй файл, а вот первый - ни в какую не хочет

$url_path = '/uploads/files/';
$tmp_path = $_SERVER['DOCUMENT_ROOT'] . $url_path;
$src   = $tmp_path . $name . '.' . $ext;
$res = move_uploaded_file($file['tmp_name'], $src);


$src проверял на is_writeable - выдавал ошибку для первого файла, для второго же - нет

В два инпута также заливал два одинаковых файла - всё та же ошибка

С правами всё ок, т.к. папка для первого и второго файла - одинаковая
($src) - 
/var/www/www-root/data/www/site/uploads/files/1720122417-8170468521.pdf
/var/www/www-root/data/www/site/uploads/files/1720122417-5879296579.docx
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Я думаю, что аффтар не справился с циклами. И подставляет телегу вперед лошади оба имени файла в первой же итерации. Тогда всё объяснимо:
- и ВНЕЗАПНО возможность записи в несуществующий файл
- и битвы бессмертных файлов, из которых останется только один

В первой итерации файл не существует, потом создается первый загруженный файл с именем второго.
И во второй итерации этот файл закономерно оказывается записываемым, и поверх него благополучно записывается второй.

Если бы автор осилил сразу привести полный код, а не какой-то огрызок, то куча людей не потратила бы кучу времени на бессмысленные гадания.
Ответ написан
borisdenis
@borisdenis
Ленив и вреден...
$src проверял на is_writeable - выдавал ошибку для первого файла, для второго же - нет

Есть подозрение, что для первого выдавалась ошибка, так как такого файла на сервере еще нет. Потом файл создается и для второго ошибка не выдается, так как файл есть, но в итоге он переписывается вторым файлом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы