![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
aivanov88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 14.12.2014 Репутация: нет Всего: нет |
Здравствуйте!
Как можно изменить код для загрузки на multiple. так чтобы выбирать и загружать сразу несколько файлов.Сейчас могу только по одному
|
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
![]()
|
|||
|
||||
whatisnot |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Допустим, что onchange="validaciq_na_izobrajeniqta()" возвращает количество выбранных файлов с записью их в поле name="number_of_images". Но даже при таком раскладе, это бессмыслица для сервера. Можно на стороне клиента в сценарии validaciq_na_izobrajeniqta() получить количество выбранного для указания в прогрессе загрузки, просчитать размер выбранного и на основе настроеек сервера сразу дать понять можно ли загрузить и такое количество, и такой объем. А если еще требуется и изменение размеров, то указать хватит ли объема памяти выделенной на сервере для обработки того или иного изображения.
Это для клиента, но клиент не всегда "хороший парень", и что будет, если я впарю вам "левую" форму с input type="hidden" id="hidden_value" value="10000000000000" name="number_of_images"? Даже я "хороший парень", все равно это поле формы не имеет смысла для сервера, ибо можно выбрать 5 файлов, а на сервере получим только 3 из них, просто по причине ошибки загрузки. Следовательно for($i = 1 ; $i <= $number_of_images ; $i++)... это пустое занятие. Загрузку файлов, вернее помещение их в каталог назначения и сохранение о них записей для их владельцев надо начинать не с if($_FILES["file_name_$i"]["name"]..., а с проверки ключа "error" массива $_FILES. Делать это в цикле не обязательно, можно array_map плюс пересечение массивов, итоговый массив полученный таким образом и даст количество загруженных реально файлов. Вот этот массив и нужно обходить в цикле выполняя необходимые операции над файлами. $extention = substr($file_name, -4) - это не только зло, но и опасно. Во-первых не $file_name = $_FILES["file_name_$i"]["name"], а $file_name = basename($_FILES["file_name_$i"]["name"]), во-вторых если изображения, то хотябы getimagesize(), а не substr($file_name, -4) - как минимум под честным именем фото я могу вам загрузить много, много мусора, а как максимум можно и поплатиться доверчивостью. Это сообщение отредактировал(а) whatisnot - 15.12.2014, 20:01 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |