<?php
session_start();
include('config.php');




//Obtenemos los datos del archivo a descargar de la clave enviada
	
$clave=$_GET['clave'];

//Array ( [Descripcion] => instrucciones 2.pdf [NombreFichero] => 638066051666918411TMP1BBD.pdf [Ruta] => P\PXClientesProductosPropios\141,F60000000129467\638066051666918411TMP1BBD.pdf )

$nombreArchivoRemoto=$_SESSION['documentos'][$clave]['NombreFichero'];
$archivoRemoto=utf8_decode(str_replace('\\','/',$_SESSION['documentos'][$clave]['Ruta']));

if($ftpDirectorioInicio) $archivoRemoto=$ftpDirectorioInicio.$archivoRemoto;

if($_GET['traza']=='si') {
	echo "<p>nombreArchivoRemoto: ".$nombreArchivoRemoto."</p>";
	echo "<p>archivoRemoto: ".$archivoRemoto."</p>";
	echo '<hr>';
	echo '<p>decode: '.utf8_decode($archivoRemoto).'</p>';
	echo '<p>encode: '.utf8_encode($archivoRemoto).'</p>';
}








$ftpConexion=ftp_connect($ftpServidor,$ftpPuerto)
or die("<p>ERROR: servidor FTP no accesible.</p>"); 




if(ftp_login($ftpConexion,$ftpUsuario,$ftpClave)) {
    
	if($_GET['traza']=='si') {
		ini_set("display_errors", "1");
    	error_reporting(E_ALL);
		echo "<p>Conexion ok</p>";
		echo '<p>Modo pasivo: '.$ftpModoPasivo.'</p>';
	}
	
	if($ftpModoPasivo) {
		ftp_pasv($ftpConexion,true);
		if($_GET['traza']=='si') echo '<p>Activamos modo pasivo</p>';
	}
	
	
	
	
	$archivoLocal='./docs/'.date('YmdHis');
	
	if($_GET['traza']=='si') {
		echo "<p>Comienza get...</p>";
		echo '<p>archivoLocal: '.$archivoLocal.'</p>';
		echo '<p>archivoRemoto: '.$archivoRemoto.'</p>';
	}
	
	$resultado=ftp_get($ftpConexion,$archivoLocal,$archivoRemoto,FTP_BINARY);
	
	if ($resultado) {
	
		if($_GET['traza']=='si') {
			echo "<p>Fin get</p>";
		}
		
		if (is_file($archivoLocal)) {
		
			if($_GET['traza']=='si') {
				echo "<p>Descargado ok</p>";
			}
		
			 $tamanyo=filesize($archivoLocal);
			 
			 if (function_exists('mime_content_type')) $tipoArchivo=mime_content_type($archivoLocal);
			 else if (function_exists('finfo_file')) {
				 $info=finfo_open(FILEINFO_MIME);
				 $tipoArchivo=finfo_file($info,$archivoLocal);
				 finfo_close($info);
			 }
			 
			 if ($tipoArchivo=='') $tipoArchivo="application/force-download";
			 
			 header('Content-Type: '.$tipoArchivo);
			 header('Content-Disposition: attachment; filename="'.$nombreArchivoRemoto.'"');
			 header('Content-Transfer-Encoding: binary');
			 header('Content-Length: '.$tamanyo);
			 
			 if (ob_get_level()) {
				ob_end_clean();
			 }
			 readfile($archivoLocal);
			 
			 unlink($archivoLocal);
			 
			 if($_GET['traza']=='si') {
			 	echo "<p>Todo finalizado ok.</p>";
			}
		}
		else echo "<p>ERROR: Archivo no encontrado.</p>";
	}	
	else {
		echo "<p>ERROR: Archivo no guardado.</p>";
		print_r( error_get_last() );
		print_r($resultado);
		echo '<p>---</p>';
	}
}
else echo "<p>ERROR: Identificación errónea.</p>";


ftp_close($ftpConexion);  
?>