Ver Mensaje Individual
  #11 (permalink)  
Antiguo 31/12/2007, 00:37
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problemas al subir un archivo cuyos datos vienen de ajax

El problema es que cuando tu haces una peticion via AJAX, esta se envia como application/www-url-encoded form, y esto lo que hace es no enviar los archivos (ya que el Browser trata el campo de input como si fuera un campo de texto).

Al cambiar tu el tipo de peticion a application/multipart-encoded (no recuerdo si es esa) forzas al explorador a enviarte el archivo como binario, PHP rescata ese contenido binario y escribe un archivo temporal, posteriormente le entrega el control a tu script (con el que tu puedes leer este archivo via el super arreglo $_FILES).

Via AJAX esto no es posible pero por limitacion del explorador, no es problema de PHP en absoluto, es una limitacion o mas bien algo que no se implemento en los exploradores actuales.

La unica forma de "emular" esto es usando iframes ocultos, donde tu hagas un POST normal con su tipo de formulario que es application/multi-part, esto hace que en el request se envie el archivo con sus datos en binario y puedas posteriormente usar el super arreglo $_FILES.

Espero que con esto entiendas el porque no es posible subir archivos via AJAX (por lo menos por ahora).

Saludos.