(estoy usando FTP)
Tengo mis 2 scripts
contenido.php
Código PHP:
<b>CONTENIDO FTP</b>
<table class="table text-center" border="1">
<tr>
<td width=""><b>Archivo</b></td>
<td width=""><b>Tamaño</b></td>
<td width=""><b>Fecha</b></td>
<td width="15%"><b><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></b></td>
</tr>
<?php
// establecer una conexión básica AL SERVIDOR FTP
$conn_id = ftp_connect($ftp_server) or die('No se pudo conectar con el servior');
// iniciar sesión con nombre de usuario y contraseña
$login_result = ftp_login($conn_id, $ftp_usuario, $ftp_password)or die('No se pudo acceder al servior');
//usar ftp en modo pasivo
ftp_pasv($conn_id, true);
// cambiar al directorio
ftp_chdir($conn_id, $dir);
// Obtener los archivos contenidos en el directorio actual
$files = ftp_nlist($conn_id, '.');
//antes de invertir el arreglo, ocultamos los primeros 2 elementos (los subdirectorios)
unset($files['0']); //ocultamos .
unset($files['1']); //ocultamos ..
$files=array_reverse($files); //Invierte orden del array (ordena array)
while ($item=array_pop($files)) //Se leen todos los ficheros y directorios del directorio
{
$tamano=number_format(((ftp_size($conn_id,$item))/1024),2)." Kb";
//Obtiene tamaño de archivo y lo pasa a KB
if($tamano=="-0.00 Kb") // Si es -0.00 Kb se refiere a un directorio
{
$item=$item;
$tamano=" ";
$fecha=" ";
}else{
$fecha=date("d/m/y h:i:s", ftp_mdtm($conn_id,$item));
//Filemtime obtiene la fecha de modificacion del fichero; y date le da el formato de salida
}
?>
<tr>
<td align="left"><font size="2" face="Verdana, Tahoma, Arial"><?php echo $item ?></font></td>
<td align="left"><font size="2" face="Verdana, Tahoma, Arial"><?php echo $tamano ?></font></td>
<td align="left"><font size="2" face="Verdana, Tahoma, Arial"><?php echo $fecha ?></font></td>
<td align="left"><font size="2" face="Verdana, Tahoma, Arial"><?php echo '[U]<a target="_blank" href="descargar.php/?archivo='.$item.'">Descargar</a>[/U]' ?></font></td>
</tr>
<?php
}
?>
</table>
descargar.php
Código PHP:
if (!isset($_GET['file']) || empty($_GET['file'])) {
echo 'NO FUNCIONA EL GET';
exit();
}
$root = "ftp://".$ftp_usuario.":".$ftp_password."@".$ftp_server."/".$dir."/";
echo "<b>ROOT</b>: ".$root."<BR>";
$file = basename("SEGURIDAD.pdf");
echo "<b>FILE</b>: ".$file."<BR>";
$path = $root.$file;
echo "<b>PATH</b>: ".$path."<BR>";
$type = '';
echo "<b>TYPE</b>: ".$type."<BR>";
if (is_file($path)) {
$size = filesize($path);
echo "<b>SIZE</b>: ".$size."<BR>";
if (function_exists('mime_content_type')) {
$type = mime_content_type($path);
echo "<b>TYPE(mime)</b>: ".$type."<BR>";
} elseif (function_exists('finfo_file')) {
$info = finfo_open(FILEINFO_MIME);
echo "<b>INFO</b>: ".$info."<BR>";
$type = finfo_file($info, $path);
echo "<b>TYPE(info)</b>: ".$type."<BR>";
finfo_close($info);
}
if ($type == '') {
$type = "application/force-download";
}
// Definir headers
header("Content-Type: $type");
header("Content-Disposition: attachment; filename=$file");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $size);
// Descargar archivo
readfile($path);
} else {
die("El archivo no existe.");
}
por más que he revisado mi código no doy con el problema... necesito unos ojos más.... gracias por su ayuda :)