Echa un vistazo a SWFUpload, que es esencialmente una API JavaScript para capacidades de manejo de carga de archivos absolutamente superior de flash. Lo mejor que hay hasta que los navegadores finalmente se pongan al día.
De enlace:
- cargar varios archivos a la vez ctrl/shift-selección en el diálogo
- devoluciones de llamada de JavaScript en todos los eventos
- Obtener información de archivo antes de subida comienza carga
- Estilo elementos con XHTML y css
- Mostrar información mientras se cargan los archivos con HTML
- No es necesario recargar la página
- Funciona en todas las plataformas/navegadores compatibles con Flash.
- degrada con gracia a la forma normal de subida HTML si Flash o Javascript no está disponible
- tamaño del archivo de control antes de que comience carga
- Sólo mostrar tipos de archivos seleccionados en el diálogo
- archivos de cola, quitar/añadir archivos antes de iniciar la carga
Demos
----- ---- carga iframe -
Para empezar, quiere tener un iframe en su página. Esto es para la comunicación del servidor. Lo esconderás más tarde, pero por ahora, mantenlo visible. Dale a ese iframe un atributo de nombre, como "uploader" o algo así.
Ahora, en su forma, establezca el destino al nombre del iframe y la acción a un script que tenga en el servidor que acepte una carga de archivo (como un formulario normal con una carga de archivo). Agregue un enlace dentro de ese formulario con el texto "Agregar archivo". Establezca ese enlace para ejecutar una función de JavaScript que agregará una nueva entrada al formulario. Esto se puede hacer a través del DOM, pero recomendaría una biblioteca de JavaScript como jquery.
Una vez que se agrega la nueva entrada de archivo al formulario, establezca el evento de desenfoque de esa entrada a una función de javascript que enviará el formulario y luego lo revisará periódicamente para su salida. Leer un iframe puede ser complicado, pero es posible.
Haga que la salida del script de carga de archivos sea "Listo". o un nombre de archivo o algo cuando la carga se completa.
Compruébelo cada segundo o menos hasta que haya contenido. Una vez que tenga contenido, elimine su temporizador y reemplace la entrada del archivo con el nombre del archivo (o "Archivo cargado") o lo que sea.
Oculte su iframe con css.
¿Qué usa Gmail? ¿Destello? IFrame? –
Cambiaron a flash hace aproximadamente 1-2 meses. Al menos en gmail. –