Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou com uma dificuldade. Eu preciso que alguns arquivos fiquem hospedados somente no banco de dados, sem upload para alguma pasta do servidor. Aparentemente o upload para o MySQL está dando certo, visto que o tamanho do arquivo enviado no banco de dados é o mesmo tamanho do arquivo original. Abaixo segue o codigo do envio.
<?php
include ("conecta_mysql.inc");
$arquivo = $_FILES['arquivo']['tmp_name'];
$tamanho = $_FILES['arquivo']['size'];
$tipo = $_FILES['arquivo']['type'];
$nome = $_FILES['arquivo']['name'];
$ano = $_POST['ano'];
$fp = fopen($arquivo, "rb");
$conteudo = fread($fp, $tamanho);
$conteudo = addslashes($conteudo);
fclose($fp);
$qry = mysql_query("INSERT INTO `direito`.`horarios_turma_b_noturno` VALUES (0, '$nome', '$titulo', '$conteudo', '$tipo', '$ano')");
?>
E aqui é onde eu recupero o arquivo:
<?php
include ("conecta_mysql.inc");
$id = $_GET['id'];
$download = mysql_query("SELECT nome, tipo FROM `horarios_turma_b_noturno` WHERE id='$id'");
$nome = mysql_result($download, 0, "nome");
$tipo = mysql_result($download, 0, "tipo");
header('Content-type: $tipo');
header("Content-Disposition: attachment; filename=$nome");
?>
Está acontecendo que o arquivo vem corrompido (por exemplo, .pdf) ou não tem nada dentro (por exemplo, .txt).
Alguem sabe qual seria o problema?
Bem pessoal, acabei conseguindo arrumar o problema, precisava de mais alguns headers. Abaixo o trecho que teve que ser modificado.