Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Добавление поля для выбора файла
 
 автор: aetern   (31.08.2013 в 23:17)   письмо автору
 
 

Есть скрипт:
$('input[type="file"]').live('change', function(){
     $('#photofile').append('<br /><input type="file" id="file" name="photo[]" multiple>');
});

<div id="photofile">
<input type="file" id="file" name="photo[]" multiple>
</div>

Если выбрать файл, то появляется новое поле.

Сразу скажу, что скрипт я нашел и, возможно он не до конца корректен.

Вопрос в том, как ограничить эти появления?
Спасибо.

  Ответить  
 
 автор: confirm   (01.09.2013 в 08:40)   письмо автору
 
   для: aetern   (31.08.2013 в 23:17)
 

Атрибут multiple доступен (действителен) в HTML5. Если использовать эти возможности, то зачем добавление полей?

  Ответить  
 
 автор: aetern   (01.09.2013 в 10:04)   письмо автору
 
   для: confirm   (01.09.2013 в 08:40)
 

Хорошо, а как тогда силами JS ограничить выбор файлов, скажем, до трех?

  Ответить  
 
 автор: confirm   (01.09.2013 в 10:12)   письмо автору
 
   для: aetern   (01.09.2013 в 10:04)
 

Что хорошо?
Если вы планируете использование и HTML5, то и сценарий должен быть соответствующий, и решения на ограничения различны будут.

  Ответить  
 
 автор: aetern   (01.09.2013 в 12:58)   письмо автору
 
   для: confirm   (01.09.2013 в 10:12)
 

Мне просто нужно сделать так, чтобы пользователь имел возможность добавить не более трех фотографий, желательно последовательно, но можно и через multiple. И ограничение это должно быть без перезагрузки страницы и отправления файлов на сервер. И не важно, написано это будет на HTML4 или 5.
Сможете направить на путь истинный?

  Ответить  
 
 автор: confirm   (01.09.2013 в 13:22)   письмо автору
 
   для: aetern   (01.09.2013 в 12:58)
 

Сервер в конечном итоге ограничит это число, а на клиенте все эти попытки только опционально как сервис.
Но если вы понимаете, что такое multiple, то зачем иметь несколько полей с такой возможностью выбора? Для поля с множественным выбором нет атрибута, который ограничивал бы количественный выбор файлов в диалоге. Изменить значение value вы не можете как и не сможете убрать лишнее из массива files при multiple.
А вот при обычных полях, просто проверяйте при добавлении их в форму количество уже существующих.
Но, мне ничего не стоит добавить самостоятельно полю multiple, или произвольное число полей.

  Ответить  
 
 автор: aetern   (01.09.2013 в 14:30)   письмо автору
 
   для: confirm   (01.09.2013 в 13:22)
 

Все ясно, буду отправлять на сервер, а там рассматривать только варианты первых трех значений массива. Но если пользователь выберет штук 20 файлов, нагрузит ли это сервер, ведь создаются же какие-то данные, до того как пройдет проверка и файл окончательно запишется?

  Ответить  
 
 автор: confirm   (01.09.2013 в 14:55)   письмо автору
 
   для: aetern   (01.09.2013 в 14:30)
 

Нельзя загрузить на север какой угодно объем данных. Загружаемый объем ограничивается настройками в php.ini:
post_max_size - максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. Если дополнительно используется ограничение памяти, memory_limit также влияет на загрузку файлов. В сущности, memory_limit должна быть больше чем post_max_size.
upload_max_filesize - максимальный размер закачиваемого файла.
max_file_uploads - максимально разрешенное количество одновременно закачиваемых файлов (доступно с версии PHP 5.2.12). Начиная с PHP 5.3.4, пустые поля загрузки не рассматриваются этим ограничением.

То есть, если доступно, то количество загружаемых файлов можно ограничить настройками.

Это не означает, что сервис на клиенте пустое занятие, просто последнее слово всегда за сервером.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования