Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/07/2020, 21:07
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Recibir valor de input file desde un js

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
  1. //Creas la instancia del objeto
  2. var data = new FormData();
  3.  
  4. //Le añades los datos a enviar
  5. data.append("miNombre", $("#txtNombre").val());
  6. data.append("miArchivo", $("#archivo")[0].files[0]);
  7.  
  8. //Estableces los valores necesarios en el método $.Ajax() y envías todo
  9. $.ajax({
  10.     url: "ejemplo.php",
  11.     type: "post",
  12.     data: data,
  13.     processData: false,
  14.     contentType: false
  15. }).done(function(respuesta){
  16.     //Aquí haces algo con la respuesta del servidor
  17. });

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 original
  1. var 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.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 28/07/2020 a las 23:32