Al menos hay un error en:
Código PHP:
header('Content-type: $type');
Pasa que usas comillas simples y dentro pones una variable que se no se va a parsear y se va a dejar tal cual, esto es el texo $type. Usa comillas dobles así:
Código PHP:
header("Content-type: $type");
Y ahora sí le dices al navegador cuál es el tipo correcto del archivo (asumo que está bien grabado en la BD), y sabrá cómo manipularlo.
En cuanto a los includes, si estos no generan salida alguna al cuerpo del protocolo HTTP, no debería haber ningún problema para mandar las cabeceras (el requisito es mandar primero las cabeceras y luego el cuerpo).
Saludos.