Carga de archivos jQuery Ajax

¿Puedo utilizar el siguiente código jQuery para realizar la carga de archivos mediante el método POST de una petición ajax?

$.ajax({
    type: "POST",
    timeout: 50000,
    url: url,
    data: dataString,
    success: function (data) {
        alert('success');
        return false;
    }
});

Si es posible, ¿necesito rellenar la parte data? ¿Es la forma correcta? Yo sólo POST el archivo en el lado del servidor.

He estado buscando en google, pero lo que encontré fue un plugin mientras que en mi plan no quiero usarlo. Al menos por el momento.

Solución

la carga de archivos no es posible a través de ajax. Se puede subir el archivo, sin refrescar la página mediante el uso de IFrame. puede comprobar más detalles aquí

ACTUALIZACIÓN:

Con XHR2, la carga de archivos a través de AJAX está soportada. Por ejemplo, a través del objeto FormData, pero desafortunadamente no es soportado por todos los navegadores.

El soporte de FormData comienza a partir de las siguientes versiones de navegadores de escritorio. IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+

Para más detalles, véase enlace MDN

Comentarios (9)

Una carga AJAX es efectivamente posible con XMLHttpRequest(). No se necesitan iframes. Se puede mostrar el progreso de la subida.

Para más detalles ver: Respuesta https://stackoverflow.com/a/4943774/873282 a la pregunta https://stackoverflow.com/questions/4856917/jquery-upload-progress-and-ajax-file-upload.

Comentarios (1)
  • Utilice un iframe oculto y establezca el objetivo de su formulario con el nombre de ese iframe. De este modo, cuando se envíe el formulario, sólo se actualizará el iframe.
  • Tenga un controlador de eventos registrado para el evento de carga del iframe para analizar la respuesta.

Más detalles en la entrada de mi blog: http://blog.manki.in/2011/08/ajax-fie-upload.html.

Comentarios (2)