Comments 71
Тема уже изъезжана в доль и поперек, но, на мой взгляд, пост лишим не будет.
Положу здесь для связности эту ссылку: habrahabr.ru/company/yandex/blog/154151/
Это все конечно интересно, но про ресайз картинок вы немного загнули.
Чем вы ресайзите — nearest neighbour что-ли?
Совершенно не убедили в пользе многоходовой комбинации
Чем вы ресайзите — nearest neighbour что-ли?
Совершенно не убедили в пользе многоходовой комбинации
Не совсем, во Flash bilinear interpolation + пошаговое сжатие. Польза видна именно при создании предпросмотра для огромных изображений. Если этого не делать, то некоторые изображения выглядят как рандомный набор пикселей.
Вот более показательный пример 5500х4087 -> 50x50 www.rubaxa.org/screenshot/4ab76ad2892ec56586eb9d97f0c9.png
UFO just landed and posted this here
Интерполяция это не совсем ресайз. Разве нету функции специально для ресайза? (я лично не в курсе, на флеше не писал никогда)
Похоже у вас просто алиасинг проступает. Вот если бы вы сильно заблурили картинку перед интерполяцией — тогда бы одношаговая интерполяция приводила бы к нормальному результату.
PS.
Когда то давно решал похожую задачу с аплоадером на ява-апплетах :-)
Похоже у вас просто алиасинг проступает. Вот если бы вы сильно заблурили картинку перед интерполяцией — тогда бы одношаговая интерполяция приводила бы к нормальному результату.
PS.
Когда то давно решал похожую задачу с аплоадером на ява-апплетах :-)
UFO just landed and posted this here
С уменьшением всегда были проблемы.
Это на увеличение разработано очень много алгоритмов, потому что текстуры раньше были маленькие.
Вообще никакой интерполяцией нельзя получить нормальное уменьшение — тут надо работать на контурах и контрастах.
Хороший пример — сравним обычный tri-linear и AA.
Это на увеличение разработано очень много алгоритмов, потому что текстуры раньше были маленькие.
Вообще никакой интерполяцией нельзя получить нормальное уменьшение — тут надо работать на контурах и контрастах.
Хороший пример — сравним обычный tri-linear и AA.
Исходники библиотеки в несжатом виде, не помешали бы, для удобства просмотра)
Они есть в ветке github.com/mailru/FileAPI/tree/master
Там почему-то пусто — raw.github.com/mailru/FileAPI/5defc80bb6e8ffe6dd6cd2f53ef53ad888cf8b91/FileAPI.js
Это файл сборки, весь код тут github.com/mailru/FileAPI/tree/master/lib
Исходов Флеш-части нету чтоль?
Лицензия какая?
Лицензия какая?
А не подскажите процент браузеров без поддержки Flash?
Скажите пожалуйста, на каких условиях ваши скрипты можно использовать в своих проектах?
Спасибо большое! Для меня эта тема была актуальна. Я использовал флеш для написания контрола, если флеш не поддерживался показывался стандартный контрол, но вот до такого не додумался. Отлично все работает, особенно превью :)
А как же про поддержку догрузки и защиту от разрывов связи (отправка частями)?
Обновите пожалуйста файл лицензии на Git Hub, по-моему там просто шаблонный текст. Очень хотелось бы использовать в своём проекте, если лицензия подойдет :)
Вот за что люблю Хабр, что он подкидывает статьи именно в тот момент, когда они нужны. Спасибо RubaXa.
Лично я частенько уменьшаю, даже в графическом редакторе, в 2 шага: до удвоенного необходимого, потом до нужного.
Автоматически поворачивать картинку на основе EXIF информации есть в планах? У 90% простых людей на этой стадии возникают проблемы.
Конечно, даже сейчас это можно делать через imageTransform на основе FileAPI.getInfo, но дополнительный параметр при upload обязательно будет.
Я имею в виду сразу встроить этот функционал в библиотеку на github, чтобы работало из коробки.
Я тоже :]
github.com/mailru/FileAPI/issues/24
github.com/mailru/FileAPI/issues/24
это для Safari на винде, на маке не в курсе
Хм, не знал, но это не важно, для Safari < 5.4 и так Flash. Вся библиотека построена на концепции поддержки нужной технологии в необходимом объеме.
P.S. Проверил в 5.1.7 (windows), размер файла есть.
P.S. Проверил в 5.1.7 (windows), размер файла есть.
то есть Вы с флэшем проверили?
Нет, вот это — jsfiddle.net/rHd26/6/
хм, забавно
Windows 7 + Safari 5.1.7 там же дает
Windows 7 + Safari 5.1.7 там же дает
fileName:calendar_current_date_highlight.jpg
name:calendar_current_date_highlight.jpg
fileSize:0
lastModifiedDate:Thu Jan 01 1970 04:00:00 GMT+0400 (Ìîñêîâñêîå âðåìÿ (çèìà))
size:0
type:image/jpeg
fileName:calendar_in_gmail.png
name:calendar_in_gmail.png
fileSize:0
lastModifiedDate:Thu Jan 01 1970 04:00:00 GMT+0400 (Ìîñêîâñêîå âðåìÿ (çèìà))
size:0
type:image/png
На mailru.github.com/FileAPI тоже по нулям при нескольких файлах.
Там смысл именно в том, что когда выбираешь 1 файл с аттрибутом multiple, то все работает.
Баг появляется только если несколько файлов выбрать.
Там смысл именно в том, что когда выбираешь 1 файл с аттрибутом multiple, то все работает.
Баг появляется только если несколько файлов выбрать.
Да, придется добавить проверку, но так всё хорошо было, эх…
и не говорите ))
Еще очень рекомендую проверить в режиме флэша, когда сам флэш передает на сервер (этот режим используется в библиотеке?), по HTTPS (только нужен правильный SSL сертификат)
Еще очень рекомендую проверить в режиме флэша, когда сам флэш передает на сервер (этот режим используется в библиотеке?), по HTTPS (только нужен правильный SSL сертификат)
У нас почта работает только по https, этот режим должен быть оттестирован хорошо.
Можно подробнее? Мы тоже мучились с https. Пока решили её ping'ом crossdomain.xml на том домене, куда грузим файл.
я не флэш-программер, поэтому не в курсе, как там что внутри, опишу, как я это понимаю.
В режиме передачи файла по HTTPS флэшем происходит проверка сертификата, то есть флэш «выступает в роли браузера» (так как в нормальной ситуации этим занимается браузер).
У некоторых браузеров была проблема в том, что база сертификатов корявая/ограниченная, то есть они доверяют только проверенным источникам (к примеру, GoDaddy), поэтому если у вас:
1) self-signed сертификат (что вполне вероятно на dev-стадии)
2) нормальный сертификат, но не содержит в себе инфу от подписавшего его источника
то появляются проблемы с тем, что сертификат не принимается браузером.
Флэш ведет себя точно также, то есть тупо отбрасывает такие сертификаты и выдает ошибку IO #2038.
В первом случае тут ничего не поделаешь.
Во втором нужно просто добавить корневой сертификат проверенного источника (который подписал ваш сертификат) внутрь вашего сертификата (это для Nginx) — то есть добавить цепочку сертификатов.
В случае апача добавить параметров SSLCACertificateFile и SSLCertificateChainFile.
По nginx смотреть тут.
В режиме передачи файла по HTTPS флэшем происходит проверка сертификата, то есть флэш «выступает в роли браузера» (так как в нормальной ситуации этим занимается браузер).
У некоторых браузеров была проблема в том, что база сертификатов корявая/ограниченная, то есть они доверяют только проверенным источникам (к примеру, GoDaddy), поэтому если у вас:
1) self-signed сертификат (что вполне вероятно на dev-стадии)
2) нормальный сертификат, но не содержит в себе инфу от подписавшего его источника
то появляются проблемы с тем, что сертификат не принимается браузером.
Флэш ведет себя точно также, то есть тупо отбрасывает такие сертификаты и выдает ошибку IO #2038.
В первом случае тут ничего не поделаешь.
Во втором нужно просто добавить корневой сертификат проверенного источника (который подписал ваш сертификат) внутрь вашего сертификата (это для Nginx) — то есть добавить цепочку сертификатов.
В случае апача добавить параметров SSLCACertificateFile и SSLCertificateChainFile.
По nginx смотреть тут.
У нас так и сделано — это не панацея. Ошибка плавает в зависимости от сочетания: сеть [+ proxy] + браузер + flash player. Именно поэтому, перед тем как переключиться на Flash, пробуем забрать crossdomain.xml, в случае ошибки переходим на iframe.
ну тут все только по собственному опыту, методом тыков и «затыков», я пришел именно к тому, что проблема в недостаточной инфе в сертификате, после рекомендаций со ссылки по nginx, проблема полностью пропала. Насчет проблем сети не знаю, не испытывал, но логично, что выпадет тоже IO error, что логично
1) кстати, если, к примеру, вы уже пропинговали и решили, что можно заюзать флэш, пока пользователь выбирал файл для загрузки, у него отвалилась сеть, он в конце концов выбрал свой файл и флэш пытается отправить его, что произойдет?
2) если решили юзать флэш аналогично первому случаю, пользователь выбрал большой файл и посреди передачи флэшем отвалилась сеть, что будет?
2) если решили юзать флэш аналогично первому случаю, пользователь выбрал большой файл и посреди передачи флэшем отвалилась сеть, что будет?
По крайней мере, такая логика в uploadify флэше была в версии 2.10 (вроде), они там использовали флэш из swfupload.
Я недавно как раз обертку писал с учетом поддержки HTML5 некоторыми браузерами и присутствием/отсутствием флэша в системе.
Так что все объяснение только по опыту работы с этим флэшем
Я недавно как раз обертку писал с учетом поддержки HTML5 некоторыми браузерами и присутствием/отсутствием флэша в системе.
Так что все объяснение только по опыту работы с этим флэшем
Очень изменяюсь, ступил, выбрал только один файл, там и в правду 0. Единственное, что радует, Safari больше не выпускается под Windows.
Извините, что комментарий не совсем в тему. В почте mail.ru, когда нажимаешь «Ответить» на письмо, который ТЫ сам отправил кому-то, в поле «получатель» подставляется ТВОЙ ЖЕ адрес. Как вы считаете, это нормальная функциональность? Мое мнение, я думаю, понятно :)
Вы правы, нелогично. Я, честно говоря, почти всегда жму «Ответить всем» (и тогда, логично, все подставляются).
Исправим.
Правда, остается вопрос — если я нажал «Ответить» на письмо, в котором несколько получателей — кому из них пойдет ответ? Наверное, самое логичное — всем. Правда, тогда получается что в Отправленных кнопка «Ответить» работает так же, как «Ответить всем».
Исправим.
Правда, остается вопрос — если я нажал «Ответить» на письмо, в котором несколько получателей — кому из них пойдет ответ? Наверное, самое логичное — всем. Правда, тогда получается что в Отправленных кнопка «Ответить» работает так же, как «Ответить всем».
Позвольте совсем идиотский вопрос. А нельзя было совсем без флеша? Через multipart всегда можно загрузить. Неужели так нужен ресайз на клиенте, чтобы поддерживать флеш-компонент?
Sign up to leave a comment.
Загрузка файлов на сервер в 2012 году