Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/02/2008, 05:59
Avatar de jaronu
jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Re: forzar la descarga de un archivo

mire, este es el codigo que uso para listar los archivos y que me aparexca un link a la carpeta donde esta el archivo, sin pasar por un archivo para su descarga,

Código PHP:
        $conexion mysql_connect('localhost','user','9999)or die ('Ha fallado la conexión'.mysql_error());
         mysql_select_db('
registro')or die ('Error al seleccionar la Base de Datos: .mysql_error());
 
 
$_pagi_sql "SELECT   id, name, description, ruta, tipo, size FROM archivos";  
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() );  
 

  
    
//Sentencia sql (sin limit)
//$_pagi_sql = mysql_result($res);

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
$_pagi_propagar = array("id","termino");//No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

//Leemos y escribimos los registros de la página actual
while($row mysql_fetch_array($_pagi_result)){

echo 
"<table width=70%><tr bgcolor= #61e877><div align=center>";

echo 
"<b>Titulo: </b>";
echo 
$row[name];
echo 
"</div></tr>";
echo
"<tr>&nbsp;</tr>";
echo 
"<tr bgcolor= #cccccc><b> &nbsp;&nbsp;&nbsp;Descripcion: </b><br>";

echo 
$row[description];
echo 
"</tr>";

echo
"<tr bgcolor= #cccccc >&nbsp;</tr>";
echo 
"<tr bgcolor= #cccccc><b> &nbsp;&nbsp;&nbsp;Tamaño: </b>";
echo 
$row[size]." Bytes";
 
echo 
"</tr>";


echo
"<tr bgcolor= #cccccc>&nbsp;</tr>";
echo 
"<tr bgcolor= #cccccc><div align=center><a href=archivos/$row[ruta]>Descargar</a></div>";
echo 
"</tr>";
echo
"<tr bgcolor= #cccccc>&nbsp;</tr>";

echo 
"</table>" ;

}

echo 
"<table width=50%><tr bgcolor= #61e877><div align=center>";
//Incluimos la barra de navegación

echo"<p>".$_pagi_navegacion."</p>";
echo 
"</div></tr>";
echo
"<tr>&nbsp;</tr>";
//Incluimos la información de la página actual

echo"<tr><div align=center><p>Resultados ".$_pagi_info."</p></div>";
echo 
"</tr>";    
echo 
"</table>" 
y en esta linea es donde muestro el enlace DESCARGAR que tiene una ruta almacenada en la DB,

echo "<tr bgcolor= #cccccc><div align=center><a href=archivos/$row[ruta]>Descargar</a></div>";

como complementaria yo, para que ahora pase a u8n archivo para forzar si descarga,

el script mas omenos lo tengo, pero no lo uso y es:

Código PHP:

<?
mysql_connect
('localhost','user','9999)or die ('Ha fallado la conexión'.mysql_error());
mysql_select_db('
registro')or die ('Error al seleccionar la Base de Datos'.mysql_error());
$id = $_GET['
id];
$qry "SELECT  ruta, tipo FROM archivos";
$res mysql_query($qry) or die( "Error en Query: $qry, error: " mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$ruta $row["ruta"];
header"Content-Disposition: attachment; filename=".$row[ruta]."");
header"Content-type: application/octet-stream" );

print 
$contenido;

Gracias.