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

 
Vista:
sin imagen de perfil
Val: 21
Ha disminuido su posición en 4 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: 21
Ha disminuido su posición en 4 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