<input type="file" name="input" multiple="true" />
Ещё более интересно, что в свежей бете (№4) этого браузера есть возможность (как я понял) получить доступ к выбранным файлам из веб-приложения.Попробовал посмотреть как выгдядит прикрепление нескольких файлов со стороны PHP, оказалось всё просто — достаточно сказать PHP, что из входящих данных нужно сделать массив и всё работает (например, указать name="input[]"): в каждом поле каждого элемента массива $_FILES содержится массив значений. Вот как это выглядит для двух файлов:
array(1) {
["input"]=>
array(5) {
["name"]=>
array(2) {
[0]=>
string(14) "2009.09.23.jpg"
[1]=>
string(14) "2009.08.25.jpg"
}
["type"]=>
array(2) {
[0]=>
string(10) "image/jpeg"
[1]=>
string(10) "image/jpeg"
}
["tmp_name"]=>
array(2) {
[0]=>
string(18) "Z:\tmp\php3740.tmp"
[1]=>
string(18) "Z:\tmp\php3741.tmp"
}
["error"]=>
array(2) {
[0]=>
int(0)
[1]=>
int(0)
}
["size"]=>
array(2) {
[0]=>
int(35005)
[1]=>
int(63030)
}
}
}
Конструкция работает в Chrome с версии 3.0.191.0 и в Safari с версии 4.0.1. К сожалению, Добавлено 29 ноября 2009 23:08: оказывается, «Опера» поддерживала с версии 3.5 загрузку сразу нескольких файлов в обычном, «однофайловом» диалоге, но в 7-й версии эту возможность открутили. Так что «Опера» первый браузер, где это реализовали.
Добавлено 29 ноября 2009 23:14: «Опера» 9.0 и выше поддерживает загрузку множества файлов в одном контроле, достаточно указать параметры min и max:
<form enctype="multipart/form-data" method="post">
<input type="file" min="1" max="9999" name="file" />
<input type="submit" name="submit" />
</form>
Плохие новости заключаются в том, что PHP такой запрос от «Оперы» разбирать не умеет.
29.11 11:20
