Комментарии 67
Спасибо за статью.
интересно. спасибо
p.s. опере не зачет
p.s. опере не зачет
не пользовался оперой никогда, но когда пришлось. нашел очень много недостатков
список в студию ;) или, как обычно, «пользовался» = «верстал под»?
При переходе на любой непривычный браузер сразу видишь кучу недостатков.
По памяти недостатки на момент перехода, в скобках состояние на сегодня:
ie->opera — проблемы с вёрсткой некоторых сайтов
opera->ff — тормоза, падает (уже не падает), жрёт много оперативки (уже меньше)
ff->opera — проблемы с rich webapplications (уже лучше, но кое-где глюки есть)
ff->safari — нет плагинов, постоянно падал (уже стабилен)
ff->chrome — нет плагинов (уже есть в хромиуме), неудобен для вебразработки
chrome->ff, safari->ff — жуткие тормоза
По памяти недостатки на момент перехода, в скобках состояние на сегодня:
ie->opera — проблемы с вёрсткой некоторых сайтов
opera->ff — тормоза, падает (уже не падает), жрёт много оперативки (уже меньше)
ff->opera — проблемы с rich webapplications (уже лучше, но кое-где глюки есть)
ff->safari — нет плагинов, постоянно падал (уже стабилен)
ff->chrome — нет плагинов (уже есть в хромиуме), неудобен для вебразработки
chrome->ff, safari->ff — жуткие тормоза
самые ярые поклонники оперы отстучали минусами не только по камменту но и в карму. чо злые то такие все. я ни единого плохого слова про вашу малышку не сказал и не сказал что фф рулит вроде, а остался при своем мнении. а товарищь Goodkat выше очень хорошо сказал мыслю по этому поводу )
Да уж, из-за этой особенности оперы я уж было начал грешить на PHP в чем сейчас каюсь :)
может, в Web-разработку?
К сожалению на текущий момент суммарная аудитория всех перечисленных браузеров едва дотягивает до 10% на среднестатистическом сайте. Но FF 3.6 не за горами, т.ч. через 3-4 месяца эффект от этой фичи уже должен быть ощутим :)
Странные вы данные какие-то даете, интересно, на чем они основаны? И почему на таком пейзаже уныния, FF 3.6 сделает что-то ощутимое?
У вас есть другие данные? Приведите плиз ссылки (только не для вашего личного проекта, а для среднестатистического).
Я же основываюсь на www.w3schools.com/browsers/browsers_stats.asp
На нескольких собственных проекта, к которым у меня есть доступ, картина еще печальней — в среднем: 50% IE, 48% FF, 2% все остальное.
Я же основываюсь на www.w3schools.com/browsers/browsers_stats.asp
На нескольких собственных проекта, к которым у меня есть доступ, картина еще печальней — в среднем: 50% IE, 48% FF, 2% все остальное.
Странно, но если судить по данным с вашей ссылки, за октябрь, например, Фаерфокс занимает 47.5%, а все ИЕ вместе 37.5%…
Тем более, «суммарная аудитория всех перечисленных браузеров» — это аудитория и ФФ тоже…
Не знаю какой сайт можно считать среднестатистическим, тем более, что вы подразумеваете.
Тем более, «суммарная аудитория всех перечисленных браузеров» — это аудитория и ФФ тоже…
Не знаю какой сайт можно считать среднестатистическим, тем более, что вы подразумеваете.
Ну вы конечно молодец. Смотреть статистику браузеров на сайте для разработчиков :)
Прелесть ситуации в том, что она уже плоха, а данный метод позволяет её исправить. То есть, если у пользователя нет поддержки Flash (ActiveX, Java) и недостаточно новый браузер, то он просто загрузит файлы «по старинке».
Кстати, есть область где этот способ выручает сильно — интранет. Там доля таких браузером может резко отличаться.
Кстати, есть область где этот способ выручает сильно — интранет. Там доля таких браузером может резко отличаться.
В России всё не так плохо суммарная доля одних только Opera 9 и 10 может достигать 30%.
А почему у input есть атрибут multiple?
Я вот тут его что-то не наблюдаю
www.w3.org/TR/html401/interact/forms.html#h-17.4
Я вот тут его что-то не наблюдаю
www.w3.org/TR/html401/interact/forms.html#h-17.4
Вы не там смотрите: www.w3.org/TR/2009/WD-html5-20090825/forms.html#file-upload-state
а на самом деле надо было
1) покурить стандарты и разобраться, имеет ли право опера присылать в таком виде, и если нет, то зарепортить им баг
2) если имеет — зарепортить feature request в php
1) покурить стандарты и разобраться, имеет ли право опера присылать в таком виде, и если нет, то зарепортить им баг
2) если имеет — зарепортить feature request в php
Если покурить стандарты, то multiple — это фишка HTML5, и разное поведение браузеров в такой ситуации — вполне легально.
Хотя, если вебкит и гекко уже сделали юзабельный вариант — поведение оперы непонятно. Кстати, интересно было бы протестить пример на мобильной опере для вин-тач-девайсов, там ядро 2.3 все-таки. Может быть есть отличия в поведении. Думаю, если все-таки отписать им багрепорт — есть большой шанс включения исправленя в ядро 2.4.
Самое обидное — это если после копания в стандартах выяснится, что опера как раз ведет себя как положено, а остальные браузеры нарушают стандарты в угоду совместимости. Хотя пока я даже не вижу такого типа данных в стандарте на enctype(
Хотя, если вебкит и гекко уже сделали юзабельный вариант — поведение оперы непонятно. Кстати, интересно было бы протестить пример на мобильной опере для вин-тач-девайсов, там ядро 2.3 все-таки. Может быть есть отличия в поведении. Думаю, если все-таки отписать им багрепорт — есть большой шанс включения исправленя в ядро 2.4.
Самое обидное — это если после копания в стандартах выяснится, что опера как раз ведет себя как положено, а остальные браузеры нарушают стандарты в угоду совместимости. Хотя пока я даже не вижу такого типа данных в стандарте на enctype(
Поведение Оперы станет понятно, если знать, что она реализовала Web Forms 2.0 задолго до того, как он влился в HTML5. В том черновике атрибут multiple есть только у select, а в input за это отвечают атрибуты min и max.
У оперы тоже есть приятные фичи. Помню очень порадовало, когда случайно увидел там атрибут required, хотя в других браузерах его еще не было :)
Баг зарепортен аж два раза.
RFC2388 www.ietf.org/rfc/rfc2388.txt
Returning Values from Forms: multipart/form-data, L. Masinter. IETF, August 1998.
4.2 Sets of files
If the value of a form field is a set of files rather than a single
file, that value can be transferred together using the
«multipart/mixed» format.
Returning Values from Forms: multipart/form-data, L. Masinter. IETF, August 1998.
4.2 Sets of files
If the value of a form field is a set of files rather than a single
file, that value can be transferred together using the
«multipart/mixed» format.
запрос к php отмечен как bogus: bugs.php.net/bug.php?id=47789
в списках рассылки php обсуждения нет, нужно завести
в списках рассылки php обсуждения нет, нужно завести
Заголовок исправьте: загрузка «массивом» нескольких файлов за один раз — стандартная фича, описанная в мануале PHP. Здесь скорее «Выбор в диалоговом окне...» и решение соответствующих проблем. Иначе думаешь о пересказе мануала или об асинхронной загрузке.
Теперь о статье: «Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer» — таким образом велосипед нафиг никому не нужен. Не парьтесь, используйте множественные поля для файлов.
Теперь о статье: «Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer» — таким образом велосипед нафиг никому не нужен. Не парьтесь, используйте множественные поля для файлов.
Вопрос по-существу от не-программиста. На виртуальном хостинге этой mailparse может и не быть, как я понимаю?
Может и не быть, но никто не мешает взять библиотеку, написанную на PHP.
Интересно, что если специально задать enctype='multipart/mixed', опера его проигнорирует и будет использовать дефолтный application/x-www-form-urlencoded
Я может что-то не так понимаю, но почему бы просто не использовать джаваскрипт и генерить несколько инпутов?
Оперы 9.5 и 10 отдают файлы с Content-Type: multipart/form-data;. Но беда с php имеется. Может поясните как надо понимать фразу:
К сожалению, «Опера» (ещё с версии 3.5) отправляет, в этом случае, запрос в формате «multipart/mixed», который PHP не понимает.
К сожалению, «Опера» (ещё с версии 3.5) отправляет, в этом случае, запрос в формате «multipart/mixed», который PHP не понимает.
интересная ситуация получается, если опера — делать одно, если FF другое, если IE — третье, а то и просто так показывать стандартную форму с обычной загрузки файла. Если все так весело, зачем я должен отказываться от проверенного временем flash-загрузчика и типичной формы с обычным file для ситуаций когда флэша нет? Зачем плодить сущности для такой опреации, если она не гарантировано и не всегда корректно отображается в разных браузерах?
С CSS уже намучились и продолжаем, так зачем те же грабли переносить и на backend
С CSS уже намучились и продолжаем, так зачем те же грабли переносить и на backend
А разве я предложил отказаться от Flash? Процитируйте это место, пожалуйста.
имеется ввиду что на данный момент бессмысленно разрабатывать такой подход для закачки, т.к. он не описан в стандартах. Это грабли которые от версии к версии браузеров будет меняться, поддерживается не четко и по большому счету код становится заложником людей которые ту же оперу пишут. Даже учитывая что «плагин недоступен», стандартный загрузчик из 3 полей типа file будет лучше чем грабли с multiple, которые большинство пользователей даже не будут пытаться использовать, они не знают что в выпавшем окошке можно выбрать 2-3 файла а не только один.
имеется ввиду что на данный момент бессмысленно разрабатывать такой подход для закачки, т.к. он не описан в стандартахЭтот подход описан в стандартах. Это часть стандарта WebForms2, который входит в HTML5.
лучше чем грабли с multiple, которые большинство пользователей даже не будут пытаться использовать, они не знают что в выпавшем окошке можно выбрать 2-3 файла а не только один.Во флешовом загрузчике они до этого же как-то догадываются :)
Кто придумает как проверить поддержку браузером
multiple="true"/min-max
без явного if (navigator.userAgent.match(...)) {...}
?Приятно, что в скором будущем этим можно будет пользоваться. На данный момент мы просто разрешаем загружать .zip/.tar/.tar.gz в тех местах, где по логике пользователю удобно притащить много файлов. На сервере обёртка разбирается с форматом, при необходимости сама распаковывает и в дальнейший код передаёт список файлов (список из одного файла, если загружали не архив). Но, конечно, это костыль и нормально работает только для небольших файлов. С видеохостингами, например, такой вариант сразу отпадает.
Кстати, мультиаплоад в ФФ наконец-то появился во многом благодаря хабру.
Спасибо. К сожалению, малоприменимо в реальном мире, особенно в случае с Оперой: мультиаплоад обычно нужен для загрузки больших файлов, а тут надо все полученные данные в памяти PHP-скрипта держать…
Извиняюсь, что поднимаю столь старую тему) У меня проблема — файлы через оперу загружаются, переносятся в $_FILES с помощью вашей функции, но содержимое искажается. magic_quotes_gps отключен, mbstring стоит. В чем может быть проблема, может, сталкивались?
Any help much appreciated :)
Any help much appreciated :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Загрузка браузером нескольких файлов