Para enviar archivos mediante Ajax, necesitas hacer uso del objeto
FormData. Tienes que crear una instancia del mismo, añadir los datos a enviar,
establecer un par de valores, y proceder con el envío.
Código Javascript
:
Ver original//Creas la instancia del objeto
var data = new FormData();
//Le añades los datos a enviar
data.append("miNombre", $("#txtNombre").val());
data.append("miArchivo", $("#archivo")[0].files[0]);
//Estableces los valores necesarios en el método $.Ajax() y envías todo
$.ajax({
url: "ejemplo.php",
type: "post",
data: data,
processData: false,
contentType: false
}).done(function(respuesta){
//Aquí haces algo con la respuesta del servidor
});
También puedes añadir el formulario entero en una sola línea en lugar de añadir uno a uno los datos a enviar. Ambas formas son válidas:
Código Javascript
:
Ver originalvar data = new FormData($("#idForm")[0]);
Recuerda que he utilizado datos de ejemplo. Tienes que adaptarlo a lo que tienes. En caso de dudas, revisa la información de los enlaces adjuntos más arriba.
NOTA: Este es un tema de
jQuery (que también se puede resolver con
Vanilla JavaScript [código JavaScript puro]), no de PHP.