- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть простой скрипт загрузки нескольких файлов с такой логикой:
Выбираю 5 файлов и получаю такой вот результат работы скрипта:
[photos] => Array ( [name] => Array ( [0] => 1.jpg [1] => 2.jpg [2] => 3.jpg [3] => 4.jpg [4] => 5.jpg ) [type] => Array ( [0] => image/jpeg [1] => [2] => image/jpeg [3] => [4] => image/jpeg ) [tmp_name] => Array ( [0] => /home/site/tmp/phpli4RKO [1] => [2] => /home/site/tmp/phpN5JgML [3] => [4] => /home/site/tmp/phpDzvWGK )
Причем массив [type] и [tmp_name] всегда заполняются по разному случайным образом, тоесть сейчас через один пустые, при второй загрузке могут быть первые 2 со значениями быть а остальные пустые и т.д.
Массив ошибок такой(взял с другого примера, но ВСЕГДА тоже 6 ошибка, тоже случайным образом):
[error] => Array ( [0] => 6 [1] => 6 [2] => 0 [3] => 6 [4] => 6 [5] => 6 [6] => 0 [7] => 0 [8] => 0 [9] => 6 [10] => 6 [11] => 6 [12] => 0 [13] => 0 [14] => 0 )
Получается что у меня при выборе N файлов всегда загружается N-random
Подскажите, почему массивы [type] и [tmp_name] заполняются всегда случайным образом? Где ошибка? Может что-то в настройках сервера?
P.S
В php.ini стоят следующие настройки:
upload_max_filesize 20M
post_max_size 100M
max_file_uploads 20
Общий объем загружаемых файлов не превышает 15 Мб
> Причем массив [type] и [tmp_name] всегда заполняются по разному случайным образом
почему случайным? где не загрузился файл пусто, логично же
коды ошибок - https://www.php.net/manual/ru/features.file-upload.errors.php
Проще заменить на:
При этом, метод полюбому будет POST, ибо файлы методом GET не передаются.
А за такое бить палками надо
Мало того, что вы не знаете, что любые функции в for выполняются каждый цикл, так ещё и полную дичь творите здесь:
Здесь "<=" можно смело заменять на "<" и не уменьшать количество элементов на 1
foreach намного быстрее будет.
И напоследок:
function fixFilesArray(array $_files): array { $walker = static function(array $arr, $fileInfoKey, callable $walker) { $ret = array(); foreach($arr as $k => $v) { if(is_array($v)) { $ret[$k] = $walker($v, $fileInfoKey, $walker); } else { $ret[$k][$fileInfoKey] = $v; } } return $ret; }; $files = []; foreach($_files as $name => $values) { if(!array_key_exists($name, $files)) { $files[$name] = []; } if(!is_array($values['error'])) { $files[$name] = $values; } else { foreach((array)$values as $fileInfoKey => $subArray) { $files[$name] = array_replace_recursive($files[$name], $walker($subArray, $fileInfoKey, $walker)); } } } return $files; }