Foros del Web » Programando para Internet » PHP »

problema curl descarga ftp (descarga doble)

Estas en el tema de problema curl descarga ftp (descarga doble) en el foro de PHP en Foros del Web. he descubierto que el archivo que me copia a la raiz de la web es por la variable $filename, que luego al hacer un unlink ...
  #1 (permalink)  
Antiguo 28/03/2012, 03:52
 
Fecha de Ingreso: marzo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Exclamación problema descargar ftp variable

he descubierto que el archivo que me copia a la raiz de la web es por la variable $filename, que luego al hacer un unlink de esa variable este archivo se borra, pero al descargar un archivo de mucho tamaño primero hace la variable y va copiando el archivo a la raiz del sitio web y luego me dice de descargarlo pero esta corrupto.

I need help please!! :D


Hola!, ante todo me presento, me llamo Juanma y despues de visitar este foro muchisimas veces he decidido registrarme para no volverme loco nunca mas jeje.

Resulta que estoy haciendo una web php que suba y descarge archivos de un ftp, lo probé con ftp_get pero el archivo que descargaba estaba dañado, y ahora estoy con curl pero el problema, que ya no se si antes me pasaba, es que el archivo descarga perfectamente pero a parte de guardarse en el lugar que elijas, nada mas darle al boton descargar este archivo se copia a la raiz de la web, llenandose de archivos que la gente a descargado jejej.

¿Como puedo evitar eso?

os pongo el codigo:
Código:
<?php
$id_ftp=ConectarFTP(); //Obtiene un manejador y se conecta al Servidor FTP
	ftp_chdir($id_ftp, $_SESSION['user'] );
	//Get file from FTP:  		
		           
  
          $ftpuser = "usuario";
   
          $ftppass = "pass";
   
          $ftppath = "172.**.**.**";
  
          $ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath."/".$_SESSION['user']."/";
		   		
			
             
	$curl = curl_init();
$fh   = fopen($filename, 'a');
curl_setopt($curl, CURLOPT_URL, $ftpurl.$filename);
curl_setopt($curl, CURLOPT_FILE, $fh);
//curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
//fwrite($fh, $result);
fclose($fh);
curl_close($curl);
	       
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($filename));
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile($filename);
?>
la parte que tengo comentada de codigo es que he descubierto que sin esa parte tambien hace lo mismo, asi que me imagino que no será muy importante, porque descargar, descarga pero sigue copiandolo a la raiz de la web.

y esto es lo que utilizaba antes

Código:
if (ftp_get($id_ftp, $filename, $filename, FTP_BINARY)) {
       
		header("Content-type: application/force-download");
       header("Content-Disposition: attachment; filename=".basename($filename));
      header("Content-Transfer-Encoding: binary");
       header("Content-Length: ".filesize($filename));
      readfile($filename);
}
Antes de nada muchisimas gracias por este foro y por vuestros conocimientos.

Muchas Gracias!

Saludos

Última edición por jmgarciamari; 04/04/2012 a las 04:26 Razón: voy averiguando cosas poco a poco
  #2 (permalink)  
Antiguo 04/04/2012, 04:28
 
Fecha de Ingreso: marzo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Respuesta: problema curl descarga ftp (descarga doble)

a nadie le ha pasado que al descargar un archivo pesado de unos 6 GB no pueda descargarlo?
  #3 (permalink)  
Antiguo 04/04/2012, 05:56
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 1 mes
Puntos: 89
Respuesta: problema curl descarga ftp (descarga doble)

Por que fopen() y no file()? si es solo lectura.
Te recomiendo este aporte <---.
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: curl, ftp, usuarios
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 08:03.