2009-04-02 11 views
21

Me gustaría cargar archivos al igual que el correo de google. Me gustaría usar jQuery y PHP para hacerlo ¿hay alguna forma de obtener la barra de progreso, etc.?Me gusta cargar archivos de Gmail con jQuery

Aquí agregué un video de cómo google lo hace. http://dl.getdropbox.com/u/5910/Jing/2009-04-02_1948.swf

Sin flash, sin Perl o CGI favor ..

supongo que puedo vivir sin el progressbar ahora estoy realmente buscando información sobre los plugins jQuery o simplemente lo que las cosas que tendría que mirar a

+13

Para que lo sepas, Google está usando Flash en GMail para hacer eso. Si hace clic derecho en el enlace 'adjuntar archivo', notará que se trata de un archivo SWF transparente. Además, hay formas de subir archivos de forma asíncrona utilizando iFrames si no desea utilizar Flash en absoluto. Ajax simplemente no admite datos binarios. – KyleFarris

+1

ok si gmail usa flash, entonces ¿cómo lo hacen ahora también para soportar el archivo html5 arrastrar y soltar? –

Respuesta

20

Es extraño que la gente diga que gmail no usa flash, cuando puede ver claramente el archivo swf en la interfaz de gmail. Intente hacer clic derecho en "Adjuntar un archivo". Es lo que permite las cargas múltiples a la vez entre otras cosas.

+0

+1 ¡Tienes razón, gracias! –

+7

esto está fechado en 2010, ¿sigue siendo el mismo hoy? – Reigel

+1

Todavía usan flash para cargar archivos en Google Drive –

7

Lo más fácil sería usar SWFUpload, es un pequeño botón escrito en Flash, con todos los ganchos para manejarlo en JS. Muy fácil de usar y funciona bien con PHP

pero, si realmente quieres que sea JS puro, necesitarás ayuda del servidor. específicamente, deberá comenzar la carga y consultar periódicamente al servidor sobre cómo va todo. desafortunadamente, el manejo de carga de PHP no recibe ninguna notificación hasta que termina la descarga. tendrías que reemplazarlo con otra cosa. hay algunos cargadores JS puros que incluyen código de servidor Perl de muestra solo por eso.

IOW: JS y PHP no lo cortan (completamente). agregar flash al cliente o un mejor controlador de carga en el servidor.

+0

Sí. Si puedes ir con Flash. Esto te ahorrará días de trabajo. –

+2

SWFUpload es excelente, el único problema es que no hay forma de cómo degradarlo elegantemente cuando el flash no está disponible sin escribir el manejo de js usted mismo. Lo que llaman degradación elegante es simplemente mostrar el cuadro de advertencia y ocultar el botón de carga ... – jhexp

2

PHP no admite el informe de progreso de carga directamente. Por lo tanto, no hay forma de volver a leer el estado de carga. Sin embargo, hay un patch que podría funcionar. No lo he intentado sin embargo.

+0

ejemplo ni siquiera parece funcionar :( – Thomaschaaf

+1

PHP no * fácilmente * admite el progreso de carga. Es posible, pero en verdad no vale la pena –

3

Uploadify es otro botón de carga swf (lo siento) que usa jquery. La misma idea que lo que Javier mencionó.

+1

Es curioso cómo la gente está empezando a decir perdón cuando se refiere al flash. Viví (apenas) los días en que la página de flash flash era la furia hasta que alguien pasó por la estadística de cuántas personas hicieron clic en "omitir introducción" –

1

GMail usa Flash para cargar el archivo en segundo plano. SWFUpload es un proyecto de código abierto que hace algo similar.

1

... gmail utiliza un iFrame que tiene una pantalla de estilo: oculta; luego, cuando lo carga en el formulario, envía el iFrame a la URL de carga. No hay flash involucrado en absoluto. Lo único que Google hace con flash en Gmail es hacer ruidos para los chats. Y debes permitir eso en la configuración. En realidad, no usan el flash demasiado solo porque es bastante malo en cuanto a la memoria y el uso de la CPU. Javascript puede hacer cualquier cosa que flash pueda hacer (aunque con muchos más códigos en algunos casos), pero Javascript, en el 99% de los casos es mucho más rápido y mejor en términos de memoria.

+2

¿Está ejecutando Linux? No sirve el cargador de Flash para clientes Linux debido a errores en el reproductor Flash de Linux. SWFUpload, por ejemplo, tiene un problema conocido donde congela navegadores en Linux. –

0

SWFUpload es Bueno sin contar y compatible con todo tipo de aplicaciones web

1

Quizás podría usar PlUpload. Tiene soporte para muchos tipos y es altamente personalizable. Puede consultar las demostraciones en el sitio web. En la página de inicio también muestra qué es lo que admite en la página de inicio y tiene un mecanismo de respaldo.

http://www.plupload.com/

Editar: Está disponible como un plugin de jQuery.

0

Acerca de Ajax que no admite datos binarios mientras se envía el formulario ... hay una solución alternativa; si eres jQuery, entonces puedes usar este Plugin de Formulario (desde malsup) aquí en http://www.malsup.com/jquery/form/. Lo he estado usando durante años ...

También plupload parece prometedor ... aprobado para eso;) ¡debo decir que es un poco voluminoso!

+0

El código vinculado desde aquí parece escribir en los datos binarios en un área de texto, y luego manejarlo especialmente en el back-end. Aunque no he intentado usarlo. –

+0

Parece que sí; pero funciona como un encanto. Lo había usado extensamente para un proyecto por un tiempo. Lo apliqué para enviar formularios HTML de gran tamaño. debo decir que soy un cliente abierto satisfecho. lol. –

Cuestiones relacionadas