2009-04-02 3 views
21

Я бы хотел загрузить файлы так же, как и в Google Mail. Я хотел бы использовать jQuery и PHP, чтобы сделать это, так или иначе, чтобы получить progressbar и т. Д.?Gmail как загрузка файла с помощью jQuery

Здесь я добавил видео о том, как это делает Google. http://dl.getdropbox.com/u/5910/Jing/2009-04-02_1948.swf

Нет вспышки, нет Perl или CGI, пожалуйста ..

Я предполагаю, что я могу жить без ProgressBar теперь я на самом деле ищет информацию о JQuery плагинов или только то, что вещи, которые я должен был бы смотреть на

+13

Просто, чтобы вы знали, Google фактически использует Flash в GMail для этого. Если вы щелкните правой кнопкой мыши ссылку «Прикрепить файл», вы увидите ее прозрачный SWF. Кроме того, есть способы загрузки файлов асинхронно с использованием iFrames, если вы вообще не хотите использовать Flash. Ajax просто не поддерживает двоичные данные. – KyleFarris

+1

ok, если gmail использует flash, так как они теперь делают, чтобы также поддерживать перетаскивание и перетаскивание файла html5? –

ответ

20

Странно, что люди говорят, что gmail не использует флеш-память, когда вы можете явно увидеть swf-файл в интерфейсе gmail. Попробуйте щелкнуть правой кнопкой мыши по «Прикрепить файл». Это то, что позволяет одновременно загружать несколько загрузок.

+0

+1 Вы правы, спасибо! –

+7

Это датировано 2010 годом, это то же самое сегодня? – Reigel

+1

Они по-прежнему используют флеш для загрузки файлов на Google Диске –

7

Простейшим было бы использовать SWFUpload, это небольшая кнопка, написанная во Flash, со всеми крючками для управления ею в JS. Очень проста в использовании и хорошо работает с PHP

но, если вы действительно хотите, чтобы это было чисто JS, вам понадобится помощь с сервера. в частности, вам нужно будет запустить загрузку и периодически запрашивать сервер о том, как это происходит. К сожалению, загрузка PHP-загрузки не получает уведомления до завершения загрузки. вам придется заменить его чем-то другим. есть несколько чистых JS-загрузчиков, которые включают в себя пример кода сервера Perl только из-за этого.

IOW: JS и PHP не разрезают (полностью). либо добавьте флешку клиенту, либо лучше обработчик загрузки на сервере.

+0

Да. Если вы можете пойти с Flash. Это сэкономит вам дни работы. –

+2

SWFUpload отлично, только проблема заключается в том, что нет способа, как деградировать его изящно, когда вспышка недоступна, не записывая js-обработку самостоятельно. То, что они называют грациозным деградацией, просто отображает окно предупреждения и скрывает кнопку загрузки ... – jhexp

2

PHP не поддерживает отчетность о ходе загрузки напрямую. Таким образом, нет возможности прочитать статус загрузки. Однако есть patch, который может работать. Я еще не пробовал.

+0

пример даже не работает :( – Thomaschaaf

+1

PHP не * легко * поддерживает загрузку. Возможно, но серьезно не стоит –

3

Uploadify - еще одна кнопка загрузки SWF (извините), которая использует jquery. Та же идея, что и Хавьер.

+1

Забавно, как люди начинают извиняться, когда ссылаются на флеш. Я жил (едва) в те дни, когда страница всплеска вспышки была яростью, пока кто-то не столкнулся с статистикой того, сколько людей нажали «пропустить ввод». –

1

GMail использует Flash для загрузки файла в фоновом режиме. SWFUpload - проект с открытым исходным кодом, который противостоит чему-то подобному.

1

... gmail использует iFrame с дисплеем стиля: скрытый; затем, когда вы загружаете форму, она отправляет iFrame в URL-адрес для загрузки. Вспышки нет. Единственное, что Google делает со вспышкой в ​​Gmail, просто вызывает шум для чатов. И вы должны разрешить это в настройках. Они не слишком сильно используют вспышку, потому что это довольно плохо, если использовать память и процессор. Javascript может делать все, что может сделать flash (albiet с гораздо большим количеством кода), но Javascript, в 99% случаев, намного быстрее и лучше по памяти.

+2

Вы используете Linux? Они не служат загрузчику Flash для Linux-клиентов из-за ошибок в Linux-проигрывателе Linux. Например, у SWFUpload есть известная проблема, где она замораживает браузеры в Linux. –

0

SWFUpload гуд и совместим со всеми типами веб-приложений

1

Возможно, вы могли бы использовать PlUpload. Он поддерживает множество типов и настраивается. Вы можете проверить демо на веб-сайте. На домашней странице он также показывает, что он поддерживает на главной странице и имеет резервный механизм.

http://www.plupload.com/

Edit: Он доступен как плагин JQuery.

0

Сведения об Ajax не поддерживают двоичные данные во время представления формы .. есть обходное решение; если вы jQuery, то вы можете использовать этот плагин формы (от malsup) здесь по адресу http://www.malsup.com/jquery/form/. Я использую его в течение многих лет ...

Также plupload кажется многообещающим .. большие пальцы вверх для этого;) Я должен сказать, что он немного громоздкий !!!

+0

Код, связанный здесь, как представляется, записывает двоичные данные в текстовое поле, а затем обрабатывает его специально на сервере. Однако я не пытался его использовать. –

+0

Кажется, так; но он работает как шарм. В то время я использовал его для проекта. Я применил его для отправки HTML-форм большого размера. должен сказать - я доволен своим клиентом. лол. –

Смежные вопросы