Foros del Web » Programando para Internet » PHP »

problema al borrar un fichero descargado por ftp

Estas en el tema de problema al borrar un fichero descargado por ftp en el foro de PHP en Foros del Web. tenia que conectarme a otro server por ftp, cojer un fiechero, descargarlo en mi server, y que el usuario lo descarge... (que mal me expreso ...
  #1 (permalink)  
Antiguo 18/02/2004, 05:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 222
Antigüedad: 20 años, 4 meses
Puntos: 2
problema al borrar un fichero descargado por ftp

tenia que conectarme a otro server por ftp, cojer un fiechero, descargarlo en mi server, y que el usuario lo descarge... (que mal me expreso por dios), y que despues de que se complete la descarga, se borre. Todo sale bien menos eso.No se borra el maldito... echadle un ojo a este codigo, a ver si alguien me puede ayudar.

$almacen="c:/data/confidencial";
$idd=$_GET[id];
echo $idd;

$res=mysql_query("SELECT * FROM documentos WHERE iddoc=$idd")or die ("no se puede realizar la consulta");
while($row = mysql_fetch_array($res)){

$x=ftp_connect ("0000000",21);
if($x !=0){
echo "<br>Conexión FTP activada";
}else{
echo "<br>No se activo lo conexión FTP";
}

if(ftp_login($x,"0000000","0000000")){

ftp_chdir($x,"/home/mescobar/archivos");
//echo ftp_pwd($x);
if(ftp_get($x,"$almacen/$row[ruta]","/home/mescobar/archivos/$row[iddoc]",FTP_ASCII)){
$name = $row[ruta];
$fichero="$almacen/$name";
$fp = fopen($fichero, 'rb');
// mandamos las cabeceras correctas
header("Content-Type:application/x-download\n");
header("Content-Disposition:attachment;filename=".$name."\n");
header("Content-Length: ".filesize($name)."\n\n");
// dump the picture and stop the script
fpassthru($fp);
if(unlink($fichero)){
ftp_quit($x);
exit;
}


}else{
echo "<br>El archivo $row[ruta] no ha podido ser descargado";
return "";
}
}else{
echo "Error en login o password en el server";
}
}

$row[ruta] contiene el nombre del archivo, porque en el ftp, esta como un numero sin extension.
lo hace todo bien, pero al final no borra el fichero... SOS porfavor.
  #2 (permalink)  
Antiguo 18/02/2004, 12:19
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
una idea

pueden ser los permisos?

digo

revisa a ver si es eso
  #3 (permalink)  
Antiguo 18/02/2004, 13:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 222
Antigüedad: 20 años, 4 meses
Puntos: 2
Y como miro lo de los permisos????lo he pillado de un server linux, y lo estoy intentando borrar de la copia que se ha cargado en el servidor web que es un windows 2003 server.


Cuando lo hago a la inversa... es decir pasarlo del windows al ftp, y despues borrarlo del windows sale nikelao....
  #4 (permalink)  
Antiguo 18/02/2004, 14:34
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
bajate el ftp

Hola para cambiar permisos via ftp lo tienes que hacer con un software de conexion ftp, ahi uno gratis y es muy bueno se llama smartftp (smartftp.com) cuando hagas la conexion haz propiedades a un archivo y cambia los permisos chmod o revisalos

salu2
  #5 (permalink)  
Antiguo 19/02/2004, 05:35
 
Fecha de Ingreso: diciembre-2003
Mensajes: 222
Antigüedad: 20 años, 4 meses
Puntos: 2
y con ftp_chmod????

Lo estoy intentando hacer con ftp_chmod, pero no me funciona, me dice que no reconoce la funcion.... he leido que solo esta disponible apartir de php5.... creo. Hay alguna otra forma de hacerlo por programacion????muchas gracias.
  #6 (permalink)  
Antiguo 19/02/2004, 07:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, la función en cuestión la implementarán a partir de PHP versión 5 .. pero si lees el manual oficial de PHP y te fijas en los comentarios de los usuarios (el único que hay en esa función ...) veras una solución para otras versiones de PHP donde le envian el comando FTP directo para esa taréa:

Código PHP:
Loup_iotte at pagesperso dot org (01-Jul-2003 05:07)

if 
ftp_chmod doesn't work, jusdt try this :
$ftp_ip="ip_of_my_serv_ftp";
$ftp_login="my_login";
$ftp_pass="my_pass";
$ftp_file="/www/motd.txt";
$conn_id=ftp_connect($ftp_ip);
$login_result=@ftp_login($conn_id, $ftp_login, $ftp_pass);
<!-- Here'
s the hack -->
$chmod_cmd="CHMOD 0666 ".$ftp_file;
$chmod=ftp_site($conn_id$chmod_cmd);
ftp_quit($conn_id);

Loup_iotte 

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 04:22.