[Php-avanzado] subir archivos

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Lun Jul 13 22:25:15 ART 2009


Hola Lucas,

El dom, 12-07-2009 a las 23:56 -0300, unes pacio escribió:
> Bueno, antes que nada muchas gracias, efectivamente el problema estaba
> en el tamaño maximo de subida de archivo.

	Lo sospeché desde un principio ;-)

>  Con respecto a $nu es porque upfile es un vector de archivos y
> necesito saber cuantos archivos fueron cargados, paso el codigo a ver
> si queda claro
> 
> <input type='hidden' name='MAX_FILE_SIZE' value='100000000' />
> file 1: <input type='file' name='upfile[]' /><br />
> <input type='hidden' name='MAX_FILE_SIZE' value='100000000' />
> file 2: <input type='file' name='upfile[]' /><br />
> <input type='hidden' name='MAX_FILE_SIZE' value='100000000' />
> file 3: <input type='file' name='upfile[]' /><br />
> <input type='hidden' name='MAX_FILE_SIZE' value='100000000' />
> file 4: <input type="file" name="upfile[]" /><br />
> 
> Esta bien eso o hay algo de mas??

	Entonces $upf es una matriz, porque $_FILES["upfile"] lo es.
	El vector en dicha matriz sería $_FILES["upfile"][0]... esto significa
que la asignación del nombre $file_name=$upf['name']; falla porque en
realidad está en $file_name=$upf[0]['name'];
	En otras palabras, si $upf, tenés que leer los datos del archivo y
hacer el move_uploaded_file() adentro del bucle.
	
	Saludos!

>         
>         > if($_POST['upload']=='subir'){
>         >     $upf = $_FILES['upfile'];
>         >     $nu=count($upf);
>         
>         
>                Para qué es $nu ?
>                No me doy cuenta de qué sentido tiene, ya que siempre
>         te va a devolver
>         la cantidad de elementos de $_FILES['upfile'], que es siempre
>         la misma y
>         la conocemos.
>         
>         >     $file_name=$upf['name'];
>         >     $file_size=$upf['size'];
>         >     $file_tmp=$upf['tmp_name'];
>         >     for($i=0;$i<$nu;$i++){
>         >         print("ha sido subido<br />");// era para testear si
>         > funcionaba hasta aca, y funciona salvo con los mp3
>         >         if($file_tmp[$i]!= ''){
>         >             move_uploaded_file($file_tmp[$i],
>         "./.$u/$file_name[$i]");
>         >             print("el archivo <b>$file_name[$i]</b> ha sido
>         subido
>         > correctamente<br />");
>         >         }
>         >     }
>         > }
>         >
>         > Agraadezco cualquier pista que me puedan tirar.
>         
>         
>                No se ve nada raro.
>                Fijate que $file_size te da al subir los MP3. Es muy
>         probable que no te
>         esté llegando nada porque el archivo excede el tamaño máximo
>         permitido
>         de la configuración de subida de archivos del servidor.
>         
>         >
>         Gracias, un saludo y felices vacaciones.


-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado