Pull to refresh
  • by relevance
  • by date
  • by rating

MIME-типы для разных браузеров при загрузке картинок

Lumber room
Весной писал скриптик, который закачивает картинки на сервер. Иногда файлы не закачивались. Задача вроде вполне тривиальная. Как оказалось, при загрузке картинок на сервер каждый браузер проверяет свой mime-тип. Чтобы не было ситуации, когда файл не загружается, надо делать проверку на следующие типы:

'image/pjpeg', — IE
'image/jpeg', — FF, Opera,Safari
'image/png', — FF,Opera,Safari
'image/gif', — IE,FF,Opera,Safari
'image/x-png', — IE
'image/x-icon', — IE,FF,Opera
'image/ico' — Safari

— это сводная табличка для файлов *.jpg,*.gif,*.png,*.ico в разных браузерах
Total votes 10: ↑8 and ↓2+6
Views594
Comments 1

Показатель обратной загрузки файла для форм (Upload Progress Meter)

Website development
Вы когда-то видели этот лоадер:
rapidshare loader
Или вот этот:
drop.io loader

Они служат для показания процента аплоада на сервер файла который вы заливаете через форму. К сожалению, на самом простом уровне показать процент аплоада нельзя, а хотелось бы. Согласитесь видеть процент загрузки всегда приятней чем скучный «Loading...» в строке-статуса браузера, поэтому я расскажу как сделать такой аплоад-показатель для ваших форм загрузок.

как такое сделать написано далее
Total votes 40: ↑29 and ↓11+18
Views4.3K
Comments 83

Хабрахакер, или картинки в комментариях в 3 клика

Habr
Морально устарел, свежая версия

По мотивам habrahabr.ru/blog/habrahabr_ideas/36319.html (топик о заливке картинок на хабр во время комментирования) я сделал очень простой скрипт для грейсманки (в 100 раз проще, чем думалось).

Поправил баг, обновите скрипт

Судя по комментам, работает и в операх, и в фаерфоксах :)

В фоксе:
Ставим Greasemonkey, если он по какой-то причине у вас не стоит

Ставим скрипт. Ссылка ведет на userscripts.org, там — после после перезапуска браузера и установки обезьяны! — жмем инсталл (справа)

Перезапускать браузер не понадобится, только обновить все открытые странички с топиками. Нажмите «ответить» или «написать комментарий», и увидите кнопку.

В опере:
Задаём папку для пользовательских JavaScript файлов: Инструменты (Tools) → Настройки (Preferences) → Дополнительно (Advanced) → Содержимое (Content) → Параметры JavaScript (JavaScript options) → «Файлы пользователя JavaScript» (User JavaScript files)

Скачиваем скрипт в эту папку. После обновления страницы скрипт заработает.
Total votes 25: ↑22 and ↓3+19
Views527
Comments 23

Хабрахакер 2.2

Habr


Вышла версия 2.3. Просто обновите скрипт по ссылкам, указанным ниже в этом посте.

Спасибо @MrProRunnerу за этот скриншот моего расширения, которое прокачает вашу форму комментирования по полной =)
Ух ты! Подробнее, пожалуйста.
Total votes 79: ↑73 and ↓6+67
Views198
Comments 125

Хабрахакер 2.3

Lumber room

Апгрейд скрипта.
Исправлена ошибка с ресайзом (спасибо spiritzzz! нука все ему кармы кинули ;) ). Слегка поменял рендеринг формы, и теперь при наведении бордюрчик появляется.
Почти не тестировалось.

Установка на лиса, оперу и сафари описана в предыдущем топике. Если вы уже знаете, как ставить, вот скрипт (напоминаю, фоксом с установленой грейсманки надо его лишь открыть, а оперчанам и сафарцам — скачать)
Total votes 53: ↑44 and ↓9+35
Views175
Comments 46

Nginx UploadProgress Module

Nginx
Модуль для nginx, с помощью которого достаточно просто мониторить прогресс загрузки файлов на сервер. Ранее были подобные решения, через модули к php, ruby, через стороние скрипты, flash объекты итп. Автор предлагает универсальное решение на уровне web сервера. Подробную информацию и инструкции вы можете найти на wiki.codemongers.com (кстати, один из лучших проектов, посвященных nginx`у). Тут я хотел обратить внимание на другое.
Использовал модуль совместно с nginx upload module, работает на ура. Однако файлы, что я заливаю, достаточно большие (поддерживаю файлообменник), пытался запихнуть в директиву upload_progress размер обрабатываемых файлов — 1g, при релоаде nginx`а получил варнинг, мол непонятный размер вы поставили. Странно, т.к. в client_max_body_size у меня стоит 1g и нормально себя чувствует. Глянул исходники nginx`а и модуля, выяснелось, что модуль обрабатывает директиву upload_progress функцией ngx_parse_size, тогда как сам nginx обрабатывает ту же client_max_body_size соседней функцией ngx_parse_offset, функции абсолютно идентичны (на мой взгляд), разве что первая не понимает размерность «g», а вторая понимает =) Для того, чтобы модуль нормально обрабатывал размерность в директиве upload_progress, надо в исходнике модуля (ngx_http_uploadprogress_module.c) в строчке 1151 исправить ngx_parse_size на ngx_parse_offset.
В общем это не критично, т.к. директива нормально обрабатывает значение 1024m, но как-то нелепо выглядит подобная запись =)))
А вообще модуль очень понравился, очень удобное решение, не зависящее от бэк-енда.

update: Внимание, совершил глупую ошибку. Стыдно. Деректива upload_progress задает не максимальный размер загружаемых файлов для указанной зоны, как я думал, а размер оперативной памяти, выделяемой для обсчета одной загрузки в эту зону. Значение для этой дерективы — 1,2m, максимум 10-20m. Задавая 1g вы будете тратить гигабайт оперативки на каждую загрузку. Стыдно, ошибку не повторяйте.
p.s. тем не менее баг найден, автору сообщил, он обещал исправить.
Total votes 63: ↑57 and ↓6+51
Views6.5K
Comments 23

ajax загрузка нескольких файлов с php формой

jQuery
Как-то для личных целей мне понадобилось сделать ajax загрузку сразу нескольких файлов. Но хотелось сделать это красиво и удобно.
Для этой задачи я выбрал горячо мной любимый jquery и несколько плагинов к нему.
подробнее
Total votes 56: ↑49 and ↓7+42
Views35K
Comments 55

Загрузка файлов и open_basedir: почему надо пользоваться стандартными функциями

PHP
Казалось бы вопрос загрузки файлов на сервер обсосан до косточек, но одно недавнее событие заставило меня в этом усомниться.

Некоторое время назад в целях повышения безопасности на наших серверах была включена настройка PHP open_basedir. После этого многие PHP-приложения перестали загружать файлы на сервер.

Читать дальше →
Total votes 78: ↑67 and ↓11+56
Views36K
Comments 33

Pict.com — новая версия хостинга изображений.

Self Promo
Всем привет!

Сегодня была запущена новая версия бесплатного хостинга изображений Pict.com.
Надеемся, что обновленный Pict.com понравится Хабравчанам.



Итак, вкратце о нововведениях...
Total votes 76: ↑66 and ↓10+56
Views1.2K
Comments 211

Загрузка и переименование файлов

Zend Framework
Статья написана для тех, кто уже хоть немного знаком с архитектурой Zend Framework. Если кому-нибудь будет интересно — опишу работу с формами более подробно в отдельной статье.

Для загрузки файлов на сервер с помощью форм в Zend Framework Form есть элемент Zend_Form_Element_File. У него есть фильтр «Rename», который позволяет переименовать закачаный файл. Но есть минус — мы не можем просто указать новое имя для файла, чтобы сохранилось его расширение. Как это сделать? А как быть, если мы используем setMultiFile?

Читаем дальше
Total votes 7: ↑7 and ↓0+7
Views8K
Comments 12

Загружаем из Picasa прямо в Facebook

Social networks and communities
Только что завершился грандиозный проект, посвященный объединению Германии, о котором я напишу попозже, и в котором я имел счастье принять участие. а именно повторить маршрут 20 летней давности…

Естественно полно фотографий. Как всегда зашел в Facebook, чтобы хоть кинуть пару фоток.
Ну не хотелось мне делать это вручную, хотелось чтобы Picasa сама это сделала… начал уже ворчать, как вдруг подумал: а может в гугле посмотреть?
и правда поиск Picasa to Facebook дал много ссылок, ссылающихся на PicasaUploader
короче, что с этим делать:
  1. Устанавливаем Picasa, если пока не сделали, то всегда сможете сделать это.
  2. Устанавливаем Плагин.
  3. В появившемся списке добавляем новую кнопку на панель кнопок

Это как установить, а вот как пользоваться — это вообще проще:
  1. Выбираем какие фотографии хотим загрузить… для нескольких, в левом нижнем углу нажимаем Hold
  2. Нажимаем на кнопку Facebook. нам придется залогиниться, чтобы суметь загрузить фотографии в наш профайл.
  3. Выбираем Альбом или создаем новый
  4. Нажимаем на Upload...
  5. После того как программа загрузить фотографии на Facebook, мы передем на страницу подтверждения.
  6. ВСЕ!

Кросспост
Total votes 13: ↑7 and ↓6+1
Views785
Comments 3

Perfect dark (Анонимная P2P)

Decentralized networks
image

* Perfect Dark — пиринговый файлообменный клиент для Microsoft Windows.

** На данный момент основное заполнение пространства сети занимает Японский контент.
** Данная сеть не зависит от работоспособности серверов, так как в них нету надобности.
** Анонимность заключается в том что никто не знает что именно вы качаете, и что выкладываете.
** Используются технологии шифрования
Читать дальше →
Total votes 55: ↑42 and ↓13+29
Views30K
Comments 72

Загрузка фотографий на сайт c помощью электронной почты

Lumber room
Это мой первый пост на Хабре, по этому не судите строго.

Задача.


Реализовать возможность загрузки фотографий в профайл или в фотоленту события посредством электронной почты, поместить их в заданную папку и сделать соответственную запись в БД.

Алгоритм


Пользователь отправляет письмо с фотографиями на адрес типа userXXX_eventYYY@mysite.com, где eventYYY — ID события; userXXX — ID пользователя. Такого e-mail адреса НЕ СУЩЕСТВУЕТ. По этому все письма отправленные на несуществующие адреса перенаправляем на image_upload@mysite.com. Потом, при считывании почты с этого адреса, парсим заголовки и узнаем на какой адрес изначально было отправлено письмо. Распарсив полученный адрес, узнаем КУДА складывать файлы и кто их залил.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Views235
Comments 26

кроссдоменный UPLOAD файлов с прогресс баром, без перезагрузки страницы, и без использования флеш

Lumber room
Драсте всем.
Спасибо что решили почитать этот пост.

Задача состояла в следующем, в связи с тем что широко известный загрузчик файлов FancyUploader, не всегда, но довольно часто глючит, особенно если использовать прокси, нужно было разработать систему, по которой при загрузке файла показывался прогресс бар… Всё бы ничего, таких систем много, но все либо используют другие флеш загрузчики или иные Апи, что в данном случии являеться негативным результатом разработки.

После некоторого времени поиска была найдена система основанная на модуле apc habrahabr.ru/blogs/webdev/17620. Всё бы хорошо, но вешать дополнительный модуль кеша на сервер где кеш технологии уже используеться было безсмысленно. Тогда мне в руки попалась информация о NGINX upload progress module (http://wiki.nginx.org/NginxHttpUploadProgressModule) и это действительно работает… Тем более что на наших серверах установлен именно nginx в качестве fronе-end сервера.

Но самое интересное оказалось впереди.

Обычно загрузка файлов осуществяеться в то место где и лежит сам сайт (на тот же домен), но у нашей компании это не так. Все картинки и видео лежат на одельном сервере, и соответсвенно хорошо если upload был бы сразу на него, что бы не загружать канал сайта.

После конфигурирования nginx с upload progress module и использование примера с wiki.nginx.org/NginxHttpUploadProgressModule прогресс бар загрузки файла заработал.

Для пересылки самого файла на нужный сервер было изменено не много, и сам же сконфигурированных nginx естественно должен находиться на h_t_t_p://STORAGE-SERVER.com.

<
Читать дальше →
Total votes 23: ↑16 and ↓7+9
Views1.1K
Comments 9

WYSIWYG image upload

Drupal
Возможности:
  • Простой и быстрый интерфейс для загрузки картинок
  • Поддержка редакторов TinyMCE, FCKeditr, YUI (Любой редактор, который поддерживает WYSIWYG модуль)
  • Поддержка ImageCache. Возможность выбрать пресеты.
  • Возможность установка произвольных размеров используя drag&drop
  • Основан на WYSIWYG моделе и его API
  • Возможность установить атрибуты картинки Title, Обтекание текстом, и Styles (Border, Spacing) и Пресеты ImageCache
  • Полностью основан на Drupal FAPI
  • Диалог основан на jquery ui dialog




Страница модуля
Total votes 9: ↑5 and ↓4+1
Views2.2K
Comments 9

Silverlight + nginx = возобновляемая загрузка файлов в браузере

Mail.ru Group corporate blog
В данной статье рассматривается опыт внедрения Silverlight-клиента для организации возобновляемой загрузки файлов на проекте Файлы@Mail.Ru.

Зачем это нужно? Думаю, не нужно рассказывать, что загрузку файлов на сервер и их хранение сейчас предоставляет очень большое количество веб-проектов, от небольших до очень крупных. Причем загрузка обычно реализована в виде обычного <input type=file/>, реже — с помощью Flash, еще реже — иными средствами (загрузку по FTP в данной статье мы не рассматриваем).

Проблема состоит в том, что протокол HTTP изначально текстовый и для передачи больших объемов бинарных данных не очень приспособлен. Отсюда вытекает, что при обрыве связи у пользователя, перезагрузке компьютера и тому подобных факапах наполовину переданный файл приходится начинать загружать заново, а в случае с медленным каналом это превращается в настоящее издевательство.

Что делать?
Читать дальше →
Total votes 122: ↑101 and ↓21+80
Views15K
Comments 41

«Сделайте мне красиво!» Выпуск №22

Lumber room
Вашему вниманию очередной выпуск подкаста о веб-разработке «Сделайте мне красиво!»

Show notes:



Наши ссылки: RSS и лента на rpod.ru
Total votes 23: ↑17 and ↓6+11
Views2K
Comments 1

Новые возможности XMLHttpRequest2

JavaScript
Translation
Одним из незамеченных героев вселенной HTML5 является XMLHttpRequest 2. Строго говоря XHR2 не является частью HTML5 и не является самостоятельным объектом. XHR2 это тот же XMLHttpRequest, но с некоторыми изменениями. XHR2 является неотъемлемой частью сложных веб-приложений, поэтому ему стоит уделить большее внимание.

Наш старый друг XMLHttpRequest сильно изменился, но не многие знают о его изменениях. XMLHttpRequest Level 2 включает в себя новые возможности, которые положат конец нашим безумным хакам и пляскам с бубном вокруг XMLHttpRequest: кросс-доменные запросы, процесс загрузки файлов, загрузка и отправка двоичных данных. Эти возможности позволяют AJAX уверенно работать без каких-либо хаков с новейшими технологиями HTML5: File System API, Web Audio API, и WebGL.

В этой статье будут освещены новые возможности XMLHttpRequest, особенно те, которые можно использовать при работе с файлами.
Читать дальше →
Total votes 133: ↑129 and ↓4+125
Views75K
Comments 32
1