Несколько файлов, которые вы можете сделать, через несколько <input type="file">
элементов. HTML5 (как минимум) также предоставляет атрибут multiple
для одного элемента <input type="file">
, который поддерживается как минимум в Chrome и Firefox (но не в IE).
Ограничение размера файла, которое вы не можете сделать с помощью JavaScript в браузере ( пока , за исключением Firefox 3.6; см. Ниже), потому что вы не можете получить доступ к файловой системе и поэтому понятия не имеете, насколько большой файл до отправки формы. Все, что вы можете сделать - это (на стороне сервера) ограничить размер разрешенных запросов и (если вы установите этот лимит, превышающий размер отдельного файла, который вы хотите разрешить), выбросить все файлы, размер которых превышает этот лимит. (Не идеально.) Как сказал Пекка , вы можете использовать альтернативы, но, конечно, у них могут быть свои проблемы (например, поддержка Flash в Linux).
Так что я имею в виду под "пока"? У пользователей HTML5 появился новый DOM API: File API . И он делает именно то, что говорит, предоставляя JavaScript доступ к выбранным файлам, которые пользователь специально предоставил доступ к через элемент <input type="file">
. Пока что я верю, что только Firefox 3.6+ поддерживает его (это инициатива Mozilla, принятая W3C), но есть разговоры о том, что Chrome поддержит его ко второму кварталу 2010 года (так, в любую минуту), и я не могу представить Safari и Opera быть далеко позади (если они уже не там). Будет интересно посмотреть, сможет ли Microsoft перейти на подножку HTML5 и начать восстанавливать свое некогда передовое положение в веб-технологиях. («Да? Майкрософт, ведущие веб-технологии?», Я слышал, вы спрашиваете. Да, это люди, которые когда-то давали вам самый быстрый и наименее глючный браузер для Windows. Это люди, который изобрел Ajax. Это так легко забыть. Они полностью потеряли свой путь в течение нескольких лет - и потеряли весь кредит, который у них когда-то был - но было время ... .)