Foros del Web » Programando para Internet » PHP »

Recogida de valores FormData con php

Estas en el tema de Recogida de valores FormData con php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/11/2012, 05:49
 
Fecha de Ingreso: septiembre-2012
Ubicación: Buenos aires
Mensajes: 110
Antigüedad: 12 años, 2 meses
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]
  #2 (permalink)  
Antiguo 09/11/2012, 07:26
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Recogida de valores FormData con php

primero decirte, por si no lo sabes, que file api es html5 y como tal unos navegadores la acepta otros no.
si quieres que sea cross-browser has de usar un iframe

una vez dicho esto, el problema ha de ser que le estás pasando un string
así intentas recogerlo $ _FILES y estás enviando f.name
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 12/07/2013, 21:34
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 12 años
Puntos: 2
Respuesta: Recogida de valores FormData con php

tu probela es que en la linea 7 donde declara el formdata dentro de los parentesis tieen que poner el formulario ejemplo:

Código Javascript:
Ver original
  1. var datos=new FormData(document.querySelector('#miform'));

de esa forma si esta bn :D espero ahber te ayudado
  #4 (permalink)  
Antiguo 13/07/2013, 02:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: Recogida de valores FormData con php

Después de casi un año, yo creo que ya lo debió haber solucionado.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: $_files, formdata, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:50.