Hola amigos, llevo tres días intentando descargar un archivo que anteriormente guardé en una bases de datos con un formulario HTML (<input type="file">) pero no logro descargarlo en el navegador.
El código que uso para guardarlo en la BBDD es:
<?php
$con=mysql_connect("XXXXXX","XXXXXX","XXXXXX") or //Se establece la conexión con el servidor
die("No se puede establecer la conexión con el servidor");
$db=mysql_select_db("XXXXXX",$con); //Se selecciona la BBDD
//Diferenciar a qué bbdd va a ir el archivo en función del tipo
$tipodoc;
if($_POST['tipo']=="Informe / documento"){
$tipodoc="Informesydocumentos";
}
if($_POST['tipo']=="Acta / convocatoria"){
$tipodoc="Actasyconvocatorias";
}
$archivo=$_FILES["documento"]["tmp_name"];
$tamanio=$_FILES["documento"]["size"];
$tipo=$_FILES["documento"]["type"];
$nombre=$_FILES["documento"]["name"];
if($archivo!="none"){
$fp=fopen($archivo,"rb");
$contenido=fread($fp,$tamanio);
$contenido=addslashes($contenido);
fclose($fp);
}
$sql="Insert into ".$tipodoc."(Fecha, CodigoCliente, Descripcion, PDF, Tipo) values('".$_POST['fecha']."', '".$_POST['codigocliente']."', '".$_POST['descripcion']."', '".$contenido."', '".$tipo."');";
$result=mysql_query($sql) or
die("Error de aplicación: Sentencia insert inválida");
print "El cliente ha sido creado correctamente.";
?>
Luego tengo un paso intermedio que me muestra toda la tabla para ver todos los archivos y descargar el que el cliente elija:
<?php
$con=mysql_connect("XXXXXX","XXXXXX","XXXXXX") or //Se establece la conexión con el servidor
die("No se puede establecer la conexión con el servidor");
$db=mysql_select_db("XXXXXX",$con); //Se selecciona la BBDD
$archivo="Select NumeroArchivo, Fecha, CodigoCliente, Descripcion from Informesydocumentos";
$resultado=mysql_query($archivo);
print "<table border='1'><tr><td hidden='hidden'>NumeroArchivo</td><td>Fecha</td><td>Descripción</td><td>Descargar</td></tr>";//Creación de la tabla e índices
while($fila=mysql_fetch_array($resultado)){
print "<tr><td>";
print $fila['Fecha'];
print "</td><td>";
print $fila['Descripcion'];
print "</td><td>";
print "<a href='DescargarArchivos.php?id=".$fila['NumeroArchivo']."'><img src='unidad-de-disco-icono-3963-48.png' width='48' height='48' /></a>";
print "</td></tr>";
}
print "</table>";
?>
Y por último tengo el que, se supone, que tiene que descargarlo:
<?php
$con=mysql_connect("XXXXXX","XXXXXX","XXXXXX") or //Se establece la conexión con el servidor
die("No se puede establecer la conexión con el servidor");
$db=mysql_select_db("XXXXXX",$con); //Se selecciona la BBDD
$archivo="Select Tipo, PDF from Informesydocumentos where NumeroArchivo=".$_GET['id'].";";
$resultado=mysql_query($archivo);
$tipo=mysql_result($resultado, 0, "Tipo");
$contenido=mysql_result($resultado, 0, "PDF");
header("Content-type: $tipo");
print $contenido;
?>
Por más vueltas que le doy no encuentro nada que esté mal. He probado cambiar este último header("Content-type....) por application/pdf, ya que siempre son archivos .pdf, pero nada.
¿Algún alma caritativa sabe qué le puede pasar?
Un saludo y muchas gracias de antemano.