2009-02-12 16 views

Respuesta

40

No, no es posible hacer esto con javascript.

Para dar la sensación de 'AJAX', sin embargo, puede enviar un formulario a un iframe oculto y mostrarle los resultados del script, luego procese desde allí. Google ajax iframe upload y comienza desde allí.

Si está utilizando jQuery, también existe el Form plugin que automáticamente creará este iframe si su formulario tiene algún campo de archivo en él. No lo he usado para hacer esto, pero he escuchado cosas buenas.

Como se señaló en los comentarios, también puede usar algo como el muy popular SWFUpload para lograr el efecto deseado con Flash.

+0

También puede usar Flash. – Sampson

+0

ah, sí. Agregó eso. –

+0

También puede usar Silverlight. – bendewey

0

No lo he usado personalmente, pero Ajax Uploader es un componente que encontré recientemente que dice que puede subir archivos dentro de un UpdatePanel (suponiendo que esté usando ASP.NET).

2

yo uso swfupload para múltiples archivos ajax-como (su javascript/flash basa)

+0

estoy abajo, soy un poco reacio a reinventar la rueda y hacerlo yo mismo, al menos la primera vez. Sé que es tonto, pero soy el tipo de persona que necesita hacer eso;) – johnnietheblack

+0

¡No es tonto! en realidad es genial. La única forma de aprender Y la parte divertida es aprender. ;) –

1

Estrictamente hablando hay posibilidades de hacer real AJAX file uploads, pero esto solo es posible en Firefox 3+, Safari 4 y Chrome 2. En todos los demás navegadores debe usar una solución como la técnica de iframe o una carga de descarga basada en Flash.

29

En caso que alguien está encontrando esta pregunta mucho más tarde: si esto es posible con JavaScript ahora.

HTML5 definió 2 nuevas API que se usan juntas para lograr esto: Arrastrar y Soltar API y File API. Puede usar jQuery para interactuar con las API de forma efectiva permitiendo que las personas arrastren y suelten archivos para cargar.

Aquí está a tutorial sobre cómo hacerlo.

El código funciona actualmente en Chrome 6+ y Firefox 3.6+, Safari 6 e IE 10. Si necesita soporte de Safari 5, el código permanece casi igual pero utiliza el objeto FormData para la lista de archivos cargados (más información en la publicación).

Opera admite File API a partir de 11, pero no la API DnD, la operación de soltar no inicia la carga, pero admiten que tenga acceso al archivo con la API. Me imagino que en 12 terminarán el soporte para DnD API.

01-20-14 Actualización: Todos los principales navegadores implementan todas las API estándar ahora, por lo que este tutorial funciona en todos los navegadores.

+0

Gracias del futuro. (2020) –

Cuestiones relacionadas