[Php-avanzado] Maniobra FTP, mi karma.

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Sab Nov 21 20:15:02 ARST 2009


Hola Carolina,

$_FILES['img']['tmp_name'] nunca te da problema como _origen_, porque es
la ruta y el archivo. Hacele un print y fijate.

	Debés de estar teniendo problemas con el _destino_, ya que el usuario
FTP ve como raiz su "home" y no necesariamente la raíz del disco.

	Si te logueas por FTP con ese usuario, vas a poder ver a dónde
"aterriza" y de ahí en más construir la ruta de destino.

	Salu2!


El sáb, 21-11-2009 a las 18:43 -0300, Silverzero escribió:
> Quiero hacer la maniobra FTP, conecta y se loguea, pero no logra mover
> el archivo. Y le estuve dando vueltas pero no consigo que funcione.
> 
> En este script tomo las imagenes y las meto en un array para despues
> poder insertarlas ordenadas en la DB.
> Estuve leyendo en php.net que el archivo que se desea mover tiene que
> estar con la ruta relativa desde donde se loguea el script por FTP. Sé
> que la carpeta temporal de $_FILES['img']['tmp_name'] es /temp/ pero
> dentro de donde? está al mismo nivel que public_html? por FTP no la
> veo.
> 
> El script corre en: /public_html/sitio/admin/publicar.php
> 
> $path="/public_html/sitio/images/publicaciones/";
> $a=array();
> 
>    foreach ($_FILES['img']['tmp_name'] as $k => $v){
> 
>         if (is_uploaded_file($_FILES['img']['tmp_name'][$k])){
>                 
>                 $img=cleanlink($_FILES['img']['name'][$k]);
>                 $imgtmp=$_FILES['img']['tmp_name'][$k];
>                 
>                 //muevo el archivo por FTP
>                 $h=ftp_connect("localhost");
>                 $login=ftp_login($h, $ftpusr, $ftppass);
>                 
>                 if ((!$h) || (!$login)) {
>                     print('<p class="warning">La conexion fallo</p>');
>                     }else{
>                         print('<p class="warning">Estado
> conectado</p>');
>                         
>                         $upload=ftp_put($h, $path.$img, $imgtmp,
> FTP_BINARY);
>                         
>                         if ($upload){
>                             print ("Se subio el archivo");
>                             }else{
>                             print ("No se pudo subir el archivo");
>                                 }
>                         }            
>                             
>                     ftp_close($h);                
> 
>                 array_push($a,$img);
>                }
>        }
> 

-- 

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