Tengo el siguiente problema:
quiero descargar los archivos que he adjuntado en un campo de tipo BLOB de una tabla en MySQL. Desde una tabla en php pinto un array con todos los archivos que el usuario va agregando y la idea es que al seleccionar uno de ellos se descargue, ya sea cualquier tipo como de word, excel, imágenes, pdf, etc. Sin embargo me descarga siempre el mismo archivo (el primero) y sin extensión.
¿Cómo podría hacer para que dependiendo el archivo que desee descargar lo haga y me lo mande con su extensión correspondiente?
Gracias y saludos
Código links de archivos
Código PHP:
<?php
$result = mysql_query("SELECT * FROM ml_dat_ARCHIVO WHERE EMAIL_PROF='$mail' ");
echo "<table width='765' border='2' align='left'>
echo "<tr>";
echo "<td><b>Título</b></td>";
echo "<td><b>Nombre</b></td>";
echo "<td><b>Descripción</b></td>";
echo "</tr>";
while ($row = mysql_fetch_row($result)){
echo "<tr> n";
echo "<td>$row[2]</td> n";
echo "<td><a href='DESCARGAR_ARCHIVOS.php ID_ARCHIVO=".$row[ID_ARCHIVO]."'>".$row[3]."</td> n";
echo "<td>$row[4]</td> n";
echo "</tr> n";
}
echo "</table> n";
?>
Código descarga archivo
Código PHP:
<?php
$conexion=mysql_connect("localhost","------------","----------------------");
if (!$conexion) {
die("Fallo la conexión a la Base de Datos: " . mysql_error());
}
$db=mysql_select_db("-------------------",$conexion);
if (!$db) {
die("Fallo la selección de la Base de Datos: " . mysql_error());
}
session_start();
$extensiones = array("application/msword"=>"doc","application/pdf"=>"pdf","image/jpeg"=>"jpg", "application/rar"=>"rar", "application/excel"=>"xls", "application/plain"=>"txt", "application/vnd.ms-powerpoint"=>"ppt");
$mail= $_SESSION[usuario];
$res = mysql_query("SELECT * FROM ml_dat_ARCHIVO WHERE EMAIL_PROF='$mail' ");
$tipo = mysql_result($res, 0, "TIPO");
$contenido = mysql_result($res, 0, "CONTENIDO");
$nombre = mysql_result($res, 0, "TITULO");
header("Content-type:'".$tipo."'");
header('Content-disposition: attachment; filename="'.$nombre.'.'.$extensiones[$tipo].'"');
echo $contenido;
mysql_close();
?>