Comunidad de diseño web y desarrollo en internet online

Subir ficheros por ftp con php

Citar            
MensajeEscrito el 08 Feb 2006 11:03 am
Hola a todos:

He realizado el ejemplo de subida de archivos por ftp con codigo php y todo ha salido bien. el problema es que solo me sube ficheros de menos de 1mb.

alguien sabe decirme di hay algun parametro que controla eso, o bien es tema de permisos y caudal en el servidor.

gracias de antemano.

Por eduu

40 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 15 Feb 2006 10:48 pm
mira este ejemplo que encontre

Código :

if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) { 
     if($HTTP_POST_FILES['archivo']['size'] < 1024000000) { 
       if($HTTP_POST_FILES['archivo']['type']=="image/jpeg") { 
           copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name]); 
           $subio = true; 
     } 
   }
}

en el segundo if esta preguntando que si el archivo que se va a subir es menor de 1024000000 bytes y si es menor sigue con el escript que pregunta si es una imagen y si lo es copia el archivo temporal a la carperta donde se encuentra tu pagina con el nombre del archivo pero esos ifs los puedes quitar o modificarlos segun tus necesidades, dale un valor mas grande al segundo if o quitalo para que no halla limite, igual con el if de la imagen puedes agregarle tipos mime o quitarlo para que suba cualquier tipo de archivo.
espero que esto te sirva, no se cual ejemplo realizaste pero aca tienes una idea de como manejar eso
Chao

Por chechopoker

91 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Feb 2006 09:49 am
el codigo que uso es:

if(!empty($_FILES["archivo"]) AND $_FILES['archivo']['error']==0){
$nombre_archivo=$_FILES['archivo']['name'].".gz";
#abre el archivo temporal transferido
$cadena='';
# abre el fichero temporal transferido y lo lee guardandolo en la variable $cadena
$f1=fopen($_FILES['archivo']['tmp_name'],"r");
while (!feof($f1)) {
$cadena .= fgets($f1,1024);
}
fclose($f1);
# comprime la cadena obtenida del fichero temporal
$c1=gzencode($cadena,3,FORCE_GZIP);
#crea un archivo comprimido
$f=fopen($nombre_archivo,"w");
fwrite($f,$c1);
fclose($f);
#cambia al directorio actual del servidor FTP
ftp_chdir($x,"ftp/".$dire);
# escribe el fichero en el en directorio FTP comprobando si ha podido guardarse
# Si el usuario no tiene permsios de "borrado" en el directorio destino
# y el nombre coincide con uno preexistente dará un mensaje de error
# si tiene permisos para borrar ficheros lo sobreescribiría eliminando el anterior
if(@ftp_put($x, $nombre_archivo, $nombre_archivo, FTP_BINARY)){
$controla="ha sido transferido con éxito";
}else{
$controla=" no ha podido transferirse.<BR> Probablemente existe<BR> otro archivo con el mismo nombre.";
}
# borra el archivo comprimido del servidor ftp.
unlink($nombre_archivo);
# elimina la variable $_FILES
unset($_FILES["archivo"]);


#cierra la conexión ftp

if(empty($lista) OR empty($encontrado)){
$f=fopen($control,"w");
fclose($f);
if(@ftp_put($x, $control, $control, FTP_BINARY)){
$escribe="Si";
}else{
}
unlink($control);
}
ftp_quit($x);

Por eduu

40 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 16 Feb 2006 02:24 pm
Es probable que al restriccion este en la configuracion de PHP, es decir en el php.ini, dado que existe un limite de tamaño para la subida de ficheros

Código :

upload_max_filesize = 2M 

Por JuDaS

105 de clabLevel



Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 16 Feb 2006 02:31 pm
en tu ejemplo creo que en la linea 8 donde dice : $cadena .= fgets($f1,1024); cambia el valor 1024 por uno mas grande, creo que asi solucionarias tu problema, no te lo puedo decir con toda seguridad pero puedes ensayar
chao espero soluciones tu problema

Por chechopoker

91 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Feb 2006 02:36 pm
Nop chechopoker, ese valor es la longuitud de valores menos uno que lee el gestor antes de saltar a una nueva linea, por defecto es un 1k o 1024 bytes.

Por JuDaS

105 de clabLevel



Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 17 Feb 2006 10:46 am
gracias a los dos.... voy a comprobar a ver si funciona. Ya os informaré.

Por eduu

40 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 17 Feb 2006 11:02 am
es curioso (no hemirado aun upload_max_filesize = 2M en el servidor) pero al cambiar la linea fgets($f1,1024); ahora me deja subir hasta 5mb. Creo que los dos eneis razón, a que la linea de codigo limita por codigo hasta que supere la limitación del servidor. Apuesto a que esta esta en 5mb

salu2

Por eduu

40 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Feb 2006 01:07 pm
Bueno chicos:

Al parece teniais razon los dos. Laprimera limitacion hasta 5mb es por codigo. A partir de ahi ya entra una restricción de servidor. Seguro que en php.ini. He escrito a mi servidor y esta es la respuesta:

El valor está actualmente establecido a 5 Mb para el upload de los ficheros a través del navegador (que no es FTP) , si necesitas un valor mayor indicánoslo, siendo un valor razonable (se tiene que poner límite, para evitar saturaciones en el sevidor) para configurarlo para tu sitio.

Reciba un cordial saludo,




gracias a los dos de nuevo. y hasta la proxima

Por eduu

40 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 21 Feb 2006 01:44 pm
por cierto, para quien interese. Tambien hay que ampliar el parametro

post_max_size

salu2

Por eduu

40 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 03 Mar 2006 12:57 pm
Hola amigos, cómo se conecta con sftp desde php? no lo reconoce

Por alh

3 de clabLevel



Genero:Femenino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.