PHP - descargar archivos de la nube por ftp desde dos servidores distintos

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

descargar archivos de la nube por ftp desde dos servidores distintos

Publicado por Joaquín (7 intervenciones) el 13/04/2019 22:28:29
Hola, buenas noches.
Tengo un problema y no consigo solucionar.
Tengo una web en un servidor y un espacio en la nube en otro servidor distinto.
He conseguido subir archivos a través de ftp desde la web a la nube del otro servidor.
Cada archivo subido está registrado en una base de datos con las rutas de ambos servidores. El problema que tengo es poder descargar cualquier archivo listado a través de ftp y no hay narices.
tengo la dirección ftp del servidor con permisos de lectura y escritura con el usuario y la clave.

este es el código, no sé qué hacer más. por favor alguien puede ayudarme?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
include "../conexion.php";
if (!isset($_SESSION['xxx'])){
	header('Location: ../sinacceso.php');}
$usuario=$_SESSION['xxx];




$codfase=$_GET["codfase"];
	$result_fas=$conexion->prepare("SELECT * FROM faseproc where cod_fase=? ") ;
	$result_fas ->bind_param("i", $codfase);
  	$result_fas -> execute();
    $result_fas ->bind_result($cod_fase, $fecha, $sujeto, $procedimiento, $descripcion, $ruta, $rutanube, $fichero);
	$result_fas ->fetch() ;
	$result_fas ->close();



$host="xxx";
$port=21;
$user="xxx";
$password="xxx";
$raiz="gestor_documental";
$carpeta=$usuario;
$conn_id=@ftp_connect($host,$port);	

	@ftp_login($conn_id,$user,$password);

	ftp_chdir($conn_id,$raiz) ; 
    ftp_chdir($conn_id,$carpeta);
	ftp_chdir($conn_id,$impuesto);
	$local_file = 'C:/fichero.pdf';  //fichero local
    $server_file = $fichero;  //fichero remoto
	if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "el fichero se ha descargado  $local_file\n";
}
else {
    echo " ha habido algun fallo \n";
	}
	ftp_close($conn_id);


?>


<?php include "cerrarconexion.php"; ?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 13
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

descargar archivos de la nube por ftp desde dos servidores distintos

Publicado por Joaquín (7 intervenciones) el 25/04/2019 18:30:42
Al final conseguí lo que quería. Lo dejo aquí por si alguien tiene el mismo problema que yo. No sé si es lo correcto pero funciona.
Para visualizar el pdf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$host="xxx";
$port=21;
$user="xxx";
$password="xxx";
 
$server_file=$fichero // esto lo recojo de la base de datos ejemplo fichero.pdf
 
$conn_id = ftp_connect($host,$port);
ftp_login($conn_id, $user, $password);
@ftp_chdir($conn_id);
@ftp_chdir($conn_id,"IMPUESTOS");
//con chdir me voy al directorio que quiera, es decir que puedo descargar archivos desde cualquier directorio o subdirectorio.
 
if (ftp_get($conn_id, $server_file, $server_file, FTP_BINARY)){ //SI EXISTE EL FICHERO
 
$nombre = $server_file;
    $fp = fopen($nombre, 'rb');
header("Content-Type: application/pdf");
header("Content-Length: " . filesize($nombre));
fpassthru($fp);
exit;
 
}



si quiero descargarlo utilizo este código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$host="xxx";
$port=21;
$user="xxx";
$password="xxx";
ftp_login($conn_id, $user, $password);
@ftp_chdir($conn_id);
@ftp_chdir($conn_id,"IMPUESTOS");
 
 
if (ftp_get($conn_id, $server_file, $server_file, FTP_BINARY)){
	$file = $server_file;
header("Content-disposition: attachment; filename=$file");
header("Content-type: application/octet-stream");
readfile($file);
}
 
ftp_close($conn_id);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar