Foros del Web » Programando para Internet » PHP »

Problema con $_FILES

Estas en el tema de Problema con $_FILES en el foro de PHP en Foros del Web. Hola a todos/as: Estoy haciendo una pequeña aplicación con la clase php mailer y unos pequeños scripts AJAX para una aplicación que envía correo con ...
  #1 (permalink)  
Antiguo 23/01/2009, 14:19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 90
Antigüedad: 16 años, 5 meses
Puntos: 0
Problema con $_FILES

Hola a todos/as:

Estoy haciendo una pequeña aplicación con la clase php mailer y unos pequeños scripts AJAX para una aplicación que envía correo con hasta 3 adjuntos.

El problema es el siguiente:

¿Cómo recojo la variable que genera un elemento file de un form como este?

<input id="my_file_element" type="file" name="archivo[]" />


$_FILES ['archivo']???? si lo imprimo recibo Warning: Invalid argument supplied for foreach()

$_FILES [''my_file_element]???? si lo imprimo recibo Warning: Invalid argument supplied for foreach()

$_FILES ['archivo'] [''my_file_element] si lo imprimo no me sale nada... ni tan sólo el error


¿Como debo recoger la variable que genera este fileupload

De momento esto está siendo mucha harina para el poco pollo que soy yo.....


Ayuda por favor.....
  #2 (permalink)  
Antiguo 23/01/2009, 14:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con $_FILES

primero, el formulario tiene el enctype="multipart/form-data" ???

demás, el método debe ser POST ... method="post"

por ultimo, has un print_r($_FILES['archivo']); para que te des cuenta de la estructura del array....

o bien, como siempre... revisa el manual de PHP , por favor!!!

http://www.php.net/manual/es/features.file-upload.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/01/2009, 14:37
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema con $_FILES

Revisalo usando este codigo para 3 archivos adjuntos:
<input id="my_file_element1" type="file" name="archivo1" />
<input id="my_file_element2" type="file" name="archivo2" />
<input id="my_file_element3" type="file" name="archivo3" />
Y lo cargas con:
$_FILES ['archivo1']
$_FILES ['archivo2']
$_FILES ['archivo3']
verifica el primer archivo con:
$_FILES ['archivo1']['tmp_name']
$_FILES ['archivo1']['name']
$_FILES ['archivo1']['size']
$_FILES ['archivo1']['type']

Saludos.
  #4 (permalink)  
Antiguo 23/01/2009, 14:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 90
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con $_FILES

Gracias a los dos.


<form action="correo2.php" method="post" enctype="multipart/form-data">..... correcto

el method es POST.... correcto

si hago un print_r($_FILES['archivo']); me da "1"??????????????


El manual de php.... he ido a $_FILES ....y he leido.....pero sigo igual .

En cuanto a ir probando con múltiples uploads en el formulario..... eso no tendría problema y es lo que precísamente no quiero... queiro que con un upload y AJAX envíe todo.

He probado con get.... y curiósamente si me aparece &archivo_1=lo que sea

Pero con post......Invalid argument supplied for foreach()


Muchas gracias por vuestro interés.... seguiré probando a ver si doy con el error...llevo media tarde y sigo sin caer
  #5 (permalink)  
Antiguo 23/01/2009, 14:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con $_FILES

el punto, es que debe funcionar.... intenta tan solo esto cuando recibes el POST

Código PHP:
print_r($_FILES); 
pero no olvides, que el name="algo" es el indice del arreglo $_FILES['algo'] !!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 23/01/2009, 15:14
 
Fecha de Ingreso: noviembre-2007
Mensajes: 90
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con $_FILES

Ok ok pateketrueke..... ahora si recibo información.....



Array ( [file_2] => Array ( [name] => info.php-----en windows.htm [type] => text/html [tmp_name] => C:\WINDOWS\TEMP\php15A.tmp [error] => 0 [size] => 47796 ) [file_1] => Array ( [name] => q321232.exe [type] => application/octet-stream [tmp_name] => C:\WINDOWS\TEMP\php15B.tmp [error] => 0 [size] => 2533744 ) [file_0] => Array ( [name] => FETE INFORMA Publicacion legislacion 21 noviembre 08.pdf [type] => application/pdf [tmp_name] => C:\WINDOWS\TEMP\php15C.tmp [error] => 0 [size] => 38202 ) ) adjunto1


voy a ver si con esto hago algo.


Muchíiiiiiiiiisimas gracias!!!!!!!!
  #7 (permalink)  
Antiguo 23/01/2009, 15:20
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con $_FILES

Cita:
¿Cómo recojo la variable que genera un elemento file de un form como este?

<input id="my_file_element" type="file" name="archivo[]" />
No uses un foreach, usa un for.

Código PHP:
<?php
$num 
count($_FILES['file']['name']);
for(
$i 0$i $num$i++) {
  
//ejemplo:
  
move_uploaded_file($_FILES['file']['tmp_name'][$i], $_FILES['file']['name']);
}
?>
  #8 (permalink)  
Antiguo 23/01/2009, 15:22
 
Fecha de Ingreso: noviembre-2007
Mensajes: 90
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con $_FILES

Creo que tema resuelto....

La cuestion estaba en la parte AJAX ... debe renombrar a $_FILES[file_2] $_FILES[file_1] $_FILES[file_0]


Muchas gracias pateketrueke no sabía que podía hacer print_r($_FILES);.... soy un autodidacta de ensayo y error y a veces me atasco.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:23.