Foros del Web » Programando para Internet » PHP »

ayuda: transferencia FTP con copy

Estas en el tema de ayuda: transferencia FTP con copy en el foro de PHP en Foros del Web. Pues eso selecciono el archivo que quiero subir y al darle al boton de subir me sale el siguiente warning: Código: Warning: copy(FTP/1.txt) [function.copy]: failed ...
  #1 (permalink)  
Antiguo 28/05/2010, 09:07
Avatar de franvalverde  
Fecha de Ingreso: febrero-2010
Mensajes: 29
Antigüedad: 14 años, 2 meses
Puntos: 0
ayuda: transferencia FTP con copy

Pues eso selecciono el archivo que quiero subir y al darle al boton de subir me sale el siguiente warning:

Código:
Warning: copy(FTP/1.txt) [function.copy]: failed to open stream: No such file or directory in C:\xampp\htdocs\vip\subida.php on line 46
Ruta: FTP/1.txt
Mi codigo es el siguiente:

Código:
     $cid = ftp_connect("127.0.0.1");
     $resultado = ftp_login($cid, "descarga","ftp");
     if ((!$cid) || (!$resultado)) {
             echo "Fallo en la conexión"; die;
     } else {
             echo "Conectado.";
     }
     ftp_pasv ($cid, true) ;
     echo "<br> Cambio a modo pasivo<br />";
     $local = $_FILES["archivo"]["name"];
     $remoto = $_FILES["archivo"]["tmp_name"];
     $tama = $_FILES["archivo"]["size"];
     echo "<br />$local<br />";
     echo "$remoto<br />";
     echo "subiendo el archivo...<br />";
     $ruta = "FTP/" . $local;         
             if (is_uploaded_file($remoto)){
                     copy($remoto, $ruta);          
             }
             else {
                    echo "no se pudo subir el archivo " . $local;
             }

    
     echo "Ruta: " . $ruta;
     
     ftp_close($cid);
El error se supone que esta en copy. AYUDA PLZ.
  #2 (permalink)  
Antiguo 28/05/2010, 09:31
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: ayuda: transferencia FTP con copy

Si usas ftp deberias usar las funciones ftp para todo el proceso:

Ejemplo:

ftp_pwd — Devuelve el nombre del directorio actual
ftp_chdir — Cambia el directorio actual en un servidor FTP
ftp_put -- Carga un archivo al servidor FTP

Mira el manual.
http://php.net/manual/es/function.ftp-chdir.php


Si no puedes comenta...

Te puedo pasar un script simple, pero prueba tu primero..
  #3 (permalink)  
Antiguo 28/05/2010, 19:59
Avatar de franvalverde  
Fecha de Ingreso: febrero-2010
Mensajes: 29
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda: transferencia FTP con copy

Buenas noches, acabo de probar la orden que me pasastes (ftp_put) pero me sigue fallando:
Código:
Warning: ftp_put(cosas.txt) [function.ftp-put]: 
failed to open stream: No such file or directory in
C:\xampp\htdocs\FTP\subir.php on line 44
Hubo un problema durante la transferencia de cosas.txt
lo que he puesto es lo siguiente:

Código:
     $cid = ftp_connect("127.0.0.1");

     $resultado = ftp_login($cid, "francis","123456");

     if ((!$cid) || (!$resultado)) {
             echo "Fallo en la conexión"; die;
     } else {
             echo "Conectado.";
     }

     ftp_pasv ($cid, true) ;
     echo "<br> Cambio a modo pasivo<br />";

     $local = $_FILES["archivo"]["name"];

     echo "<br />$local<br />";
     echo "subiendo el archivo...<br />";
    
      if (ftp_put($cid, $local, $local, FTP_ASCII)) {
 		echo "se ha cargado $local con éxito\n";
	} else {
 		echo "Hubo un problema durante la transferencia de $local\n";
	}
     ftp_close($cid);
La verdad no se lo que estoy haciendo mal. No utilizo el ftp_chdir porque deseo dejarlo en la raiz del FTP.
  #4 (permalink)  
Antiguo 29/05/2010, 12:16
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: ayuda: transferencia FTP con copy

Toma el archivo temporal enviado por el formulario de envio (quita el php anterior)
<file name='archivo' />
Y envialo usando copy a ver que pasa (copy es para mover archivos entre directorios pero tambien copia el temporal al servidor):

Código PHP:


if($_FILES['archivo']['name']){

copy($_FILES['archivo']['tmp_name'], "nuevoombre.ext");


  #5 (permalink)  
Antiguo 29/05/2010, 13:47
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: ayuda: transferencia FTP con copy

Cita:
Iniciado por wiwi74 Ver Mensaje
Toma el archivo temporal enviado por el formulario de envio (quita el php anterior)
<file name='archivo' />
Y envialo usando copy a ver que pasa (copy es para mover archivos entre directorios pero tambien copia el temporal al servidor):

Código PHP:


if($_FILES['archivo']['name']){

copy($_FILES['archivo']['tmp_name'], "nuevoombre.ext");

}

/*
Puedes probar tambien ubicandote sobre la carpeta "htdocs"

ftp_chdir($fp, "htdocs/");

Directorio al cual quieres subir tus archivos.
*/ 
  #6 (permalink)  
Antiguo 29/05/2010, 13:56
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: ayuda: transferencia FTP con copy

Este codigo me funciona:


Código PHP:



$host
="";
$login="";
$password="";

$ftp=ftp_connect($host) or die ("no puedo conectar");
ftp_login($ftp,$login,$password) or die ("Conexión rechazada");

//te ubicas sobre el directorio a subir tus archivos
@ftp_chdir($ftp,"htdocs/");
//nuevo nombre (en este caso le pondra el mismo nombre)
//ftp_pwd($ftp) esto contiene el nombre de la carpetas donde te has ubicado + el nombre del archivo
$new_name ftp_pwd($ftp)."/"$_FILES['archivo']['name'];

//finalmente lo subes
//fijate esto FTP_BINARY (segun los que saben, causa menos problemas)
$result ftp_put($ftp$new_name$temp_nameFTP_BINARY); 
  #7 (permalink)  
Antiguo 01/06/2010, 05:05
Avatar de franvalverde  
Fecha de Ingreso: febrero-2010
Mensajes: 29
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda: transferencia FTP con copy

sigue sin funcionarme, haber te explico a mi, me esta funcionando otro codigo pero en el mismo servidor FTP, si lo mando a otro diferente no.

Esto es lo que yo tengo:

subir.php:

Código:
  <form action='subir3.php' method='post' enctype='multipart/form-data'>
       
<input name='archivo' type='file'><br>

<center>
  <p>
    <input type='submit' value='Subir a FTP'>
	<input type='checkbox' name='verificar' value='si'><font face="Arial, Helvetica, sans-serif" size="-2">Marque la casilla de verificación.</font>
  </p><br>
</center>

</form>
subir3.php

Código:
<?php
$host="192.168.1.254"; 
$login="user"; 
$password="passw"; 

$ftp=ftp_connect($host) or die ("no puedo conectar"); 
ftp_login($ftp,$login,$password) or die ("Conexión rechazada"); 

//te ubicas sobre el directorio a subir tus archivos 
@ftp_chdir($ftp,"PARTES/"); 
//nuevo nombre (en este caso le pondra el mismo nombre) 
//ftp_pwd($ftp) esto contiene el nombre de la carpetas donde te has ubicado + el nombre del archivo 
$new_name = ftp_pwd($ftp)."/". $_FILES['archivo']['name']; 

//finalmente lo subes 
//fijate esto FTP_BINARY (segun los que saben, causa menos problemas) 
echo "$temp_name";
$result = ftp_put($ftp, $new_name, $temp_name, FTP_BINARY);  

?>
Error que me devuelve

Código:
/PARTES/2.txt
Warning: ftp_put() [function.ftp-put]: Filename cannot be empty in C:\xampp\htdocs\vip\subir3.php on line 21
  #8 (permalink)  
Antiguo 01/06/2010, 10:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda: transferencia FTP con copy

Cita:
Iniciado por franvalverde Ver Mensaje
ayuda por favor, tengo que tener algun fallo en el codigo
pues claro... si tu mismo has colocado el mensaje del fallo...!!
Cita:
Warning: ftp_put() [function.ftp-put]: Filename cannot be empty in C:\xampp\htdocs\vip\subir3.php on line 21
y bueno, si usas un traductor... ¿que te dice??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 01/06/2010, 10:37
Avatar de franvalverde  
Fecha de Ingreso: febrero-2010
Mensajes: 29
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda: transferencia FTP con copy

Cita:
Iniciado por pateketrueke Ver Mensaje
pues claro... si tu mismo has colocado el mensaje del fallo...!!


y bueno, si usas un traductor... ¿que te dice??
haber, he puesto ayuda por favor, porque el mensaje iba ya por la 6 pagina y pido ayuda no por mi ingles si no porque no se lo que me falla del codigo, ya que me lo he puesto tal cual me lo paso wiwi74.

Hazme el favor y no postees para esa tonteria.
  #10 (permalink)  
Antiguo 01/06/2010, 10:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda: transferencia FTP con copy

entonces tu no necesitas ayuda... quieres que alguien te corrija el código, y bueno... es casi como hacer tu trabajo!!

y bueno... el mensaje de error es toda la ayuda que necesitas, simplemente dice que el nombre no puede estar vacío... ¿ya has comprobado que todos los valores sean correctos??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 01/06/2010, 12:08
Avatar de franvalverde  
Fecha de Ingreso: febrero-2010
Mensajes: 29
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda: transferencia FTP con copy

ya esta solucionado. Gracias por toda la información pateketrueke sin ti no hubiese podido.

Ahora necesito cambiar el tiempo de conexión porque donde quiero acceder es una adsl de 1mega. He utilizado la linea:
Código PHP:
ftp_set_option($id_conFTP_TIMEOUT_SEC100); 
pero parece que no me hace nada, creo que no la situo donde debo.

este es el codigo que me ha servido para la conexion:

Código PHP:
<?php
$host
="192.168.1.254"
$login="descarga"
$password="ftp"

$archivo 'algun-archivo.txt';
$archivo_remoto $_FILES['archivo']['name'];


$ftp=ftp_connect($host); 
ftp_login($ftp,$login,$password) or die ("Conexión rechazada"); 


if (
ftp_put($ftp$archivo_remoto$archivoFTP_BINARY)) {
echo 
"se ha cargado $archivo_remoto satisfactoriamente\n";
} else {
echo 
"Hubo un problema durante la transferencia de $archivo\n";
}

ftp_close($ftp);
?>
Donde ubico el ftp_set_option para que el tiempo de conexion sea mayor.
  #12 (permalink)  
Antiguo 01/06/2010, 12:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda: transferencia FTP con copy

puedes comenzar a leer el manual...
http://php.net/ftp_set_option

se supone que debes cambiar las opciones, después de establecer la conexión...

y pues, además tu variable $id_con ¿de donde la sacas??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 01/06/2010, 12:20
Avatar de franvalverde  
Fecha de Ingreso: febrero-2010
Mensajes: 29
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda: transferencia FTP con copy

PFFF PATEKETRUEKE ENTERAO DE CARRETERAS,,,, k no te enteras, si leyeras un pokito el mismo enlace que me has pasado te darias cuenta que lo he sacado de hay. si pasas de exarme una mano deja de postear, pero deja de postear por postear que asi tambien llego a los 9000mensajes ... T.T

ftp_set_option($ftp, FTP_TIMEOUT_SEC, 100);
Lo probe justamente detras del ftp_connect pero no me dio resultado.
  #14 (permalink)  
Antiguo 01/06/2010, 12:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda: transferencia FTP con copy

Cita:
Iniciado por franvalverde Ver Mensaje
PFFF PATEKETRUEKE ENTERAO DE CARRETERAS,,,, k no te enteras, si leyeras un pokito el mismo enlace que me has pasado te darias cuenta que lo he sacado de hay. si pasas de exarme una mano deja de postear, pero deja de postear por postear que asi tambien llego a los 9000mensajes ... T.T

ftp_set_option($ftp, FTP_TIMEOUT_SEC, 100);
Lo probe justamente detras del ftp_connect pero no me dio resultado.
osea... lo colocaste antes o después de ftp_connect()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: copy, ftp, transparencia
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 21:51.