Gmail как загрузка файла с помощью jQuery
Я хотел бы загружать файлы так же, как и в google mail. Я хотел бы использовать jQuery и PHP, чтобы сделать это, так или иначе, чтобы получить progressbar и т.д.
Здесь я добавил видео о том, как это делает Google. http://dl.getdropbox.com/u/5910/Jing/2009-04-02_1948.swf
Нет вспышки, нет perl или cgi, пожалуйста.
Я думаю, что я могу жить без progressbar, теперь я ищу информацию о плагинах jquery или о том, что мне нужно будет смотреть
Ответы
Ответ 1
Странно, что люди говорят, что gmail не использует флеш, когда вы можете явно увидеть swf файл в интерфейсе gmail. Попробуйте щелкнуть правой кнопкой мыши по "Прикрепить файл". Это то, что позволяет одновременно загружать несколько загрузок.
Ответ 2
Проще всего было бы использовать SWFUpload, это небольшая кнопка, написанная во Flash, со всеми крючками для ее запуска в JS, Очень проста в использовании и хорошо работает с PHP
но если вы действительно хотите, чтобы он был чистым JS, вам понадобится помощь с сервера. в частности, вам нужно будет запустить загрузку и периодически запрашивать сервер о том, как это происходит. К сожалению, загрузка PHP-загрузки не получает уведомления до завершения загрузки. вам придется заменить его чем-то другим. есть несколько чистых JS-загрузчиков, которые включают в себя пример кода сервера Perl только из-за этого.
IOW: JS и PHP не разрешают (полностью) его. либо добавьте флешку клиенту, либо лучше обработчик загрузки на сервере.
Ответ 3
на мой взгляд отличная статья на эту тему:
http://robertnyman.com/html5/fileapi-upload/fileapi-upload.html
К сожалению, для IE и Opera недостаточно поддержки, но, надеюсь, это изменится.
Ответ 4
Uploadify - еще одна кнопка загрузки (извините), которая использует jquery. Та же идея, что и Хавьер.
Ответ 5
PHP не поддерживает отчетность о загрузке напрямую. Таким образом, нет возможности прочитать статус загрузки. Однако существует патч, который может работать. Я еще не пробовал.
Ответ 6
GMail использует Flash для загрузки файла в фоновом режиме. SWFUpload - проект с открытым исходным кодом, который противостоит чему-то подобному.
Ответ 7
... gmail использует iFrame с отображением стиля: hidden; затем, когда вы загружаете форму, она отправляет iFrame в URL-адрес для загрузки. Вспышки нет. Единственное, что Google делает со вспышкой в Gmail, просто вызывает шум для чатов. И вы должны разрешить это в настройках. Они не слишком сильно используют вспышку, потому что это довольно плохо, если использовать память и процессор. Javascript может делать все, что может сделать flash (albiet с гораздо большим количеством кода), но Javascript, в 99% случаев, намного быстрее и лучше по памяти.
Ответ 8
Возможно, вы можете использовать PlUpload. Он поддерживает множество типов и настраивается. Вы можете проверить демо на веб-сайте. На домашней странице он также показывает, что он поддерживает на главной странице и имеет резервный механизм.
http://www.plupload.com/
Изменить: он доступен как плагин jQuery.
Ответ 9
SWFUpload является gud и совместим со всеми типами веб-приложений.
Ответ 10
Об Ajax не поддерживает двоичные данные во время представления формы. Существует обходное решение; если вы jQuery, то вы можете использовать этот плагин формы (от malsup) здесь, http://www.malsup.com/jquery/form/. Я использую его в течение многих лет...
Также plupload кажется многообещающим. Палец вверх для этого;) Я должен сказать, что он немного громоздкий.