Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2012, 05:49
underwebinfo
 
Fecha de Ingreso: septiembre-2012
Ubicación: Buenos aires
Mensajes: 110
Antigüedad: 12 años, 1 mes
Puntos: 9
Pregunta Recogida de valores FormData con php

Hola que tal buenas, estaba haciendo un script para un multiple upload de imagenes/archivos en javascript cuando me di cuenta que php no me toma los valores de el envio les mostrare un ejemplo:

Código Javascript:
Ver original
  1. function Add_Photos(id){
  2.    
  3.     // --- Variables
  4.     var ajax = new XMLHttpRequest();
  5.  
  6.     // -- Insercion de datos
  7.     var datos = new FormData();
  8.     datos.append('id',id);
  9.    
  10.     files = document.getElementById('Fotos').files;
  11.    
  12.     for (var i = 0, f; f = files[i]; i++) {
  13.         datos.append('Foto',f.name);
  14.     }
  15.    
  16.     // -- Abriendo php
  17.     ajax.open('POST','Include/Add_Photos.php',true);
  18.    
  19.     // -- Barra de progreso
  20.     var progressBar = $('div#Progressbar i');
  21.     ajax.upload.onprogress = function(e) {
  22.         if (e.lengthComputable) {
  23.            
  24.             var porcentaje = Math.ceil((e.loaded / e.total) * 100);
  25.             progressBar.css('width',porcentaje+'%');
  26.             $('div#Progressbar p').text(porcentaje+'%');
  27.         }
  28.     };
  29.    
  30.     // -- Cargado
  31.     ajax.onload = function(e){
  32.         alert(ajax.response);
  33.     }
  34.     ajax.error = function(){
  35.     }
  36.    
  37.     // -- Envio los datos
  38.     ajax.send(datos);


Código PHP:
Ver original
  1. # --- Framework
  2.     include("Cm_Framework.php");
  3.    
  4.     # --- Clases
  5.     $Mysql = new Cm_mysql;
  6.     $Imagen = new Cm_Imagenes;
  7.    
  8.     # --- Variables
  9.     $Album = $_POST['id'];
  10.     $Img = $_FILES['Foto'];
  11.    
  12.     # --- Mysql
  13.     $Mysql->Conectar();
  14.    
  15.     # --- Bucle for
  16.     for($i=0,$f; $f = $Img[$i]; $i++){
  17.        
  18.         if($Imagen->Subir($f,'../../Prueba/'.$f['name'],20)){
  19.            
  20.             $Mysql->Consulta('INSERT INTO Fotos (Foto,Album) VALUES ("'.$f['name'].'","'.$Album.'")');
  21.  
  22.         }
  23.        
  24.         echo $f['name'];
  25.     }

Hice un alert en javascript de solamente los nombres de los archivos enviados, y me encuentro con un mensaje de error de parte de php

Notice Undefined index: Foto in c:\xampp\etc...



Me encuentro en el dilema de no entender por que desconoce el envio de archivos :S $_FILES[Foto]