|
|
|
| Есть скрипт:
$('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>
|
Если выбрать файл, то появляется новое поле.
Сразу скажу, что скрипт я нашел и, возможно он не до конца корректен.
Вопрос в том, как ограничить эти появления?
Спасибо. | |
|
|
|
|
|
|
|
для: aetern
(31.08.2013 в 23:17)
| | Атрибут multiple доступен (действителен) в HTML5. Если использовать эти возможности, то зачем добавление полей? | |
|
|
|
|
|
|
|
для: confirm
(01.09.2013 в 08:40)
| | Хорошо, а как тогда силами JS ограничить выбор файлов, скажем, до трех? | |
|
|
|
|
|
|
|
для: aetern
(01.09.2013 в 10:04)
| | Что хорошо?
Если вы планируете использование и HTML5, то и сценарий должен быть соответствующий, и решения на ограничения различны будут. | |
|
|
|
|
|
|
|
для: confirm
(01.09.2013 в 10:12)
| | Мне просто нужно сделать так, чтобы пользователь имел возможность добавить не более трех фотографий, желательно последовательно, но можно и через multiple. И ограничение это должно быть без перезагрузки страницы и отправления файлов на сервер. И не важно, написано это будет на HTML4 или 5.
Сможете направить на путь истинный? | |
|
|
|
|
|
|
|
для: aetern
(01.09.2013 в 12:58)
| | Сервер в конечном итоге ограничит это число, а на клиенте все эти попытки только опционально как сервис.
Но если вы понимаете, что такое multiple, то зачем иметь несколько полей с такой возможностью выбора? Для поля с множественным выбором нет атрибута, который ограничивал бы количественный выбор файлов в диалоге. Изменить значение value вы не можете как и не сможете убрать лишнее из массива files при multiple.
А вот при обычных полях, просто проверяйте при добавлении их в форму количество уже существующих.
Но, мне ничего не стоит добавить самостоятельно полю multiple, или произвольное число полей. | |
|
|
|
|
|
|
|
для: confirm
(01.09.2013 в 13:22)
| | Все ясно, буду отправлять на сервер, а там рассматривать только варианты первых трех значений массива. Но если пользователь выберет штук 20 файлов, нагрузит ли это сервер, ведь создаются же какие-то данные, до того как пройдет проверка и файл окончательно запишется? | |
|
|
|
|
|
|
|
для: 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, пустые поля загрузки не рассматриваются этим ограничением.
То есть, если доступно, то количество загружаемых файлов можно ограничить настройками.
Это не означает, что сервис на клиенте пустое занятие, просто последнее слово всегда за сервером. | |
|
|
|