Comments 67
>загрузчик фалов на сервер
Угловая скорость вращения дедушки Фрейда слегка увеличилась:)
Исправьте пожалуйста.
Угловая скорость вращения дедушки Фрейда слегка увеличилась:)
Исправьте пожалуйста.
+20
в хроме невозможно выбрать более 10 файлов одновременно — можно это обойти?
0
Проблема заключается в том, что общее количество символов в именах файлов не должно превышать ~220 символов. Пока вроде такая проблема только в хроме на винде.
codereview.chromium.org/4198004
codereview.chromium.org/4198004
0
Спасибо за информацию. Как раз щас предстоит делать загрузку файлов на HTML 5, в дополнение к Silverlight.
0
под виндовс действительно есть такая проблема в хроме, но бывает и выбирает больше) Пока не знаю, какая причина. В линуксе все нормально.
0
Непременно глянем-с!
0
А как вы решили проблему загрузки файлов с помощью Ajax в ИЕ и Опере?
+1
флеш :)
+1
Свой загрузик пишите или какое-то решне выбрали? По универсальности мне больше этот нарвится www.plupload.com/example_custom.php, но уж слишком громоздкий.
+1
Да, скорее всего plupload.
Но опять же, наверное, самый значимый для нас минус большинства загрузчиков — это то, что у загрузчика есть собственный гуи. Пусть можно изменять стили, пусть как-то его гуи можно настраивать — все таки, имхо, аплоадер должен только загружать файлы, а как ему эти файлы передадутся — уже не его задача.
Да и очень хочется самостоятельно написать на флеше аналогичный загрузчи просто для собственного развития) Но за это деньги не платят, а работать должно все «уже сейчас»).
Но опять же, наверное, самый значимый для нас минус большинства загрузчиков — это то, что у загрузчика есть собственный гуи. Пусть можно изменять стили, пусть как-то его гуи можно настраивать — все таки, имхо, аплоадер должен только загружать файлы, а как ему эти файлы передадутся — уже не его задача.
Да и очень хочется самостоятельно написать на флеше аналогичный загрузчи просто для собственного развития) Но за это деньги не платят, а работать должно все «уже сейчас»).
0
На это тоже стоит взглянуть.
+2
Пересмотрел кучу плагинов и решений на HTML5. Valums — показался мне лучшим вариантом. Стилизовать легко, необходимые функции написаны, работает во всех браузерах.
0
Вот кстати пример с использованием Valums — dapmoed.ru/elfinder-demo/
0
у меня завис ваш пример, что-то он корявый, я все же ухитрился бы флэш привязать. в свое время облез кучу всего, нужно было в реальном времени подгружать кучу файлов и чтобы они тут же парсились и появлялись на сайте в реалтайме, так вот пользовал и аякс на jquery и все что угодно, были проблемы пока полностью не перешел на флэш загрузку: быстро, удобно, красиво, есть прелоадер (а это важно было в моем проекте, ибо файлы иногда лились по 20-30 мегов и пользователь видел что сайт не завис). вобщем пришлось выучить флэш и написать свой загрузчик…
-4
у меня завис ваш пример, что-то он корявый, я все же ухитрился бы флэш привязать. в свое время облез кучу всего, нужно было в реальном времени подгружать кучу файлов и чтобы они тут же парсились и появлялись на сайте в реалтайме, так вот пользовал и аякс на jquery и все что угодно, были проблемы пока полностью не перешел на флэш загрузку: быстро, удобно, красиво, есть прелоадер (а это важно было в моем проекте, ибо файлы иногда лились по 20-30 мегов и пользователь видел что сайт не завис). вобщем пришлось выучить флэш и написать свой загрузчик…
изначально, когда я еще писал на jquery мне очень помог iframeupld.js (его легко найти в инете)
изначально, когда я еще писал на jquery мне очень помог iframeupld.js (его легко найти в инете)
0
Каждый изобретает свой велосипед.
Самым «вкусным» в виде Blob вы не воспользовались.
Нельзя использовать readAsBinary, на больших файлах это сожрет всю память юзера.
А вы пробовали вешать обработчик на xhr.upload.onprogress?
Самым «вкусным» в виде Blob вы не воспользовались.
Нельзя использовать readAsBinary, на больших файлах это сожрет всю память юзера.
FF редко вызывает событие progress у XMLHttpRequest, в отличии от хрома или Сафари.
А вы пробовали вешать обработчик на xhr.upload.onprogress?
+1
Прошу прощения, заглянул в код, там обработчик на xhr.upload.onprogress вешается.
Значит это глюк ФФ, по спецификации www.w3.org/TR/XMLHttpRequest2/#make-upload-progress-notifications событие должно вызываться либо раз в 50мс, либо на каждый байт, в зависимости от того, что происходит чаще.
Значит это глюк ФФ, по спецификации www.w3.org/TR/XMLHttpRequest2/#make-upload-progress-notifications событие должно вызываться либо раз в 50мс, либо на каждый байт, в зависимости от того, что происходит чаще.
0
Не смотрели www.plupload.com/index.php?
+2
смотрим) Но я так понял, он тоже по одному отправляет?
0
Я так и не понял, зачем вам отправлять файлы группами?
0
Для того, чтобы уменьшить количество соединений
0
Да, по очереди.
0
Кстати Опера тоже поддерживает Мультизагрузку файлов. В ней ваша форма застряла на
Output:
STARTING ...
0
использовал habrahabr.ru/blogs/webdev/109079/ — работает все хорошо, ждем когда в safari заработает
+2
там используется FileReader, но в хроме столкнулись с такой проблемой, что файлы получаются битыми, не знаю, из-за чего это может быть.
Мне кажется, что FormData гораздо удобнее для отправки данных. FileReader больше подходит там, где нужно еще как-то взаимодействовать с файлами, кроме просто отправки на сервер, имхо.
Мне кажется, что FormData гораздо удобнее для отправки данных. FileReader больше подходит там, где нужно еще как-то взаимодействовать с файлами, кроме просто отправки на сервер, имхо.
0
Я пошел по этому же пути и добавил в свой код использование FormData там, где это возможно. Получилось, наверное, почти как у вас. Тока я еще в jQuery-плагин все это завернул.
+1
Лучше поздно, чем никогда :)
Если интересно, то вот jQuery-плагин по мотивам моей статьи, использующий FormData там, где это возможно, и позволяющий управлять очередью загрузок. В самом файле есть описание его использования. Ссылку на работающий пример и кое-какие подробности можно увидеть в UPD той самой статьи.
Если интересно, то вот jQuery-плагин по мотивам моей статьи, использующий FormData там, где это возможно, и позволяющий управлять очередью загрузок. В самом файле есть описание его использования. Ссылку на работающий пример и кое-какие подробности можно увидеть в UPD той самой статьи.
0
Я немного доработал свой код, он в сафари работает нонче. Все не доходят руки на хабр выложить. Чуть позже дам линк.
+2
Давать читать это всем, кто начинает писать статьи на Хабре! 5 минут на чтение — минус рабочая неделя на мозготоптательный дебаг…
Статей по поводу работы с HTML5 немеряно, но статей с четкой постановкой задач и указанием на нюансы и без воды — единицы.
Респект.
Статей по поводу работы с HTML5 немеряно, но статей с четкой постановкой задач и указанием на нюансы и без воды — единицы.
Респект.
0
Используйте plupload либо мою альтернативу Lightweight Uploader
Если хотите иметь регулярный секс — то, конечно, пишите своё )
Если хотите иметь регулярный секс — то, конечно, пишите своё )
0
да, мы остановимся на plupload, наверное. Но иметь регулярный секс полезно для здоровья все равно)
0
Кстати, хорошая у вас альтернатива. А для чего nginx используете при аплоаде?
Будет ли ваше решение загружать файлы, если файлы будут закачиваться с адреса, например, site.ru на адрес u1.site.ru?
Будет ли ваше решение загружать файлы, если файлы будут закачиваться с адреса, например, site.ru на адрес u1.site.ru?
0
nginx вместе c upload-модулем используется:
а) для того, чтобы бэкенд вступал в дело только после полного окончания загрузки; при этом не происходит копирование файла в STDIN бэкенда, ему передается лишь ссылка на уже сохраненный upload модулем временный файл
б) для поддержки дозагрузки, которую дает upload модуль
Хороший вопрос )
Будет (после небольшого фикса с моей стороны) и если использовать последнюю версию upload модуля из гита, которая обрабатывает метод OPTIONS с помощью директивы upload_add_header.
а) для того, чтобы бэкенд вступал в дело только после полного окончания загрузки; при этом не происходит копирование файла в STDIN бэкенда, ему передается лишь ссылка на уже сохраненный upload модулем временный файл
б) для поддержки дозагрузки, которую дает upload модуль
Будет ли ваше решение загружать файлы, если файлы будут закачиваться с адреса, например, site.ru на адрес u1.site.ru?
Хороший вопрос )
Будет (после небольшого фикса с моей стороны) и если использовать последнюю версию upload модуля из гита, которая обрабатывает метод OPTIONS с помощью директивы upload_add_header.
0
Я имел в виду, что фиксить надо html5 загрузку, конечно же.
Flash и Silverlight загрузка будет работать между доменами при правильно настроенных файлах u1.site.ru/crossdomain.xml и u1.site.ru/clientaccesspolicy.xml (хотя по идее и первого будет достаточно).
Flash и Silverlight загрузка будет работать между доменами при правильно настроенных файлах u1.site.ru/crossdomain.xml и u1.site.ru/clientaccesspolicy.xml (хотя по идее и первого будет достаточно).
0
Собственно, в гите уже есть фикс для кроссдоменной html5-загрузки.
0
А загрузка будет работать без upload-модуля? Так как если его ставить, то нужно собирать энджинкс в ручную, а это не есть debian way на продакшен сервере.
0
Будет, если вы сами повторите протокол частичной загрузки на бекенде.
Сильверлайт очень плохо загружает большие файлы целиком, точнее сначала полностью загружает в память (видимо для высчитывания заголовка Content-Length, который вручную нельзя установить), и только потом начинает загружать на сервер.
Сильверлайт очень плохо загружает большие файлы целиком, точнее сначала полностью загружает в память (видимо для высчитывания заголовка Content-Length, который вручную нельзя установить), и только потом начинает загружать на сервер.
0
А может дороботать ваше решение, что бы частичная загрузка работала опциоанльно. Что бы ее можно было оключить, если upload модуль не установлен. Тогда это решение будет более универсальным и не заточеным под энджинкс с его модулем.
0
А что такое «debian way»? И почему он не совместим с ручным билдом?
0
Это когда все программы ставятся из пакетов. И ручная сборка не приветствуется. Потому что пакеты имеют тенденцию обновляться закрывая баги или при выходе новых версий. И обновление всего ПО на сервере в этом случае приосходит с помощью одной одной/двух команд. А при ручной сборе, необходимо при выпуске новых версии все пересобирать в ручную и еще отслеживать версии. Короче гемор один и усложнение жизни админу. Поэтому в пакетных операционках не приветствуется ручная сборка пакетов.
0
0
Ошибаетесь.
dev.w3.org/2006/waf/access-control/ — это уже поддерживают Chrome, Safari и Firefox. Ребята из Opera как обычно заняты им одним ведомыми делами, но думаю скоро и они подтянутся.
dev.w3.org/2006/waf/access-control/ — это уже поддерживают Chrome, Safari и Firefox. Ребята из Opera как обычно заняты им одним ведомыми делами, но думаю скоро и они подтянутся.
0
Стоит упомянуть, что sendAsBinary — отсебятина Mozilla и нигде, кроме FF, не существует.
0
Если загрузить файл драг&дропом, а затем попытаться загрузить через кнопку, то в хроме выпадает ошибка Uncaught ReferenceError: onuploaded is not defined.
+1
Начал внедрять ваш аплоадер и оказалось, что он не отправляет и не получает кукисы. Если вам не сложно, то допишите пожалуйста работы с куками.
0
ну да
0
Знаю что прошел год, но ссылки померли.
0
Sign up to leave a comment.
Загрузка файлов с помощью HTML5 и сколько раз мы сказали нехорошие слова