Lo que necesito hacer es recibir por la URL la variable Id y la variable type, luego ver mi base de datos y forzar la descarga del archivo que tenga como Id el parámetro que pase por la URL, de la carpeta correspondiente según el type (el tipo de archivo que puede ser un currículum o un documento, los cuales se guardan en carpetas diferentes).
El código del archivo download.php es el siguiente:
Código PHP:
<?
//Incluyo la librería de funciones para usar la BBDD
include("includes/functions.php");
//Veo si estoy recibiendo los valores por la URL
if (isset($_GET['id']) && isset($_GET['type'])){
//Si es un CV, busco el nombre del archivo y compongo la ruta correspondiente
if($_GET['type'] == "cv"){
$conn = conectar();
$ssql = "SELECT * FROM equipo WHERE id = '" . $_GET['id'] . "' LIMIT 1";
$rs = preg($ssql);
while($row = mysql_fetch_object($rs)){
$archivo = "cv/" . $row->cv;
}
}else{
//Sino compongo la ruta para otro tipo de archivos
$conn = conectar();
$ssql = "SELECT * FROM materiales WHERE id = '" . $_GET['id'] . "' LIMIT 1";
$rs = preg($ssql);
while($row = mysql_fetch_object($rs)){
$archivo = "docs/" . $row->fichero;
}
}
}
//Funcion para descargar el archivo
function Descargar($ElFichero){
$TheFile = basename($ElFichero);
header( "Content-Type: application/octet-stream");
header( "Content-Length: ".filesize($ElFichero));
header( "Content-Disposition: attachment; filename=".$TheFile."");
readfile($ElFichero);
}
//Descargo el archivo en cuestión
Descargar($archivo);
?>
El problema que me da cuando trato de usar el archivo es justamente que no se pueden enviar los headers porque ya fueron enviados antes.
Alguna idea de cual puede ser mi error o de otra forma de resolverlo???
Saludos y gracias.