maneira correta de fazer upload de imagem para o banco de dados

Eu sei que alguns de vocês vão dizer que esta não é a maneira correta, mas estou em um prazo apertado para terminar um aplicativo e a partir de agora eu não posso voltar e modificar o código para armazenar as imagens em um diretório.

agora que isso é limpo

A pergunta que eu tive é que eu inseri uma imagem no banco de dados digitando isso.

(não importa a chamada de segurança de classe, tudo o que está fazendo é algumas verificações se os dados são válidos)

<code>$filename = $security->secure($_FILES['imgschool']['name']);
$tmpname = $security->secure($_FILES['imgschool']['tmp_name']);
$imgsize = $security->secure($_FILES['imgschool']['size']);
$imgtype = $security->secure($_FILES['imgschool']['type']);
$school = $security->secure($_POST['school']);


//begin upload
if($imgsize > 0) {
$handle = fopen($tmpname, "r");
$content = fread($handle, filesize($tmpname));
$content = addslashes($content);

//code to add all this to database
}
</code>

a variável $ content é a imagem e toda a sua obtenção são os addslashes. Eu me lembro de alguém que uma vez mencionou fazer isso com algo chamado base64, mas mal posso lembrar como foi escrito.

é assim que eu estou chamando a imagem do banco de dados

Além de todas as consultas e outras coisas, esta é a parte principal que está chamando a imagem

<code>header("Content-length: ".$imgsize);
header("Content-type: ".$imgtype);
header("Content-Disposition: attachment; filename=".$imgname);
print $row['img'];
</code>

O problema que estou tendo é que, em vez de mostrar a imagem. o URL está apenas mostrando, então neste caso eu só vejo isso

http: //localhost/admin/school-catalog.php? page = gallery & id = 4

ao abrir a página para visualizar a imagem com os parâmetros corretos definidos no URL.

para aqueles que queriam ver a consulta que está sendo feita para salvar a imagem e assim por diante eu copiei toda a seção

<code>//save image to db
if(isset($_POST['btnupload'])) {

$filename = $security->secure($_FILES['imgschool']['name']);
$tmpname = $security->secure($_FILES['imgschool']['tmp_name']);
$imgsize = $security->secure($_FILES['imgschool']['size']);
$imgtype = $security->secure($_FILES['imgschool']['type']);
$school = $security->secure($_POST['school']);


//begin upload
if($imgsize > 0) {
$handle = fopen($tmpname, "r");
$content = fread($handle, filesize($tmpname));
$content = base64_encode($content);
}

$save = mysql_query("insert into tbl_schoolgallery(id,hash,img,imgtype,imgsize) values(null,'$school','$content','$imgtype','$imgsize')") or die(mysql_error());
header("Location: school-catalog.php?page=school_gallery");

}


//call image from db
$query = mysql_query("select * from $tbl where id = '$id'") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {

$imgtypeget = explode("/", $row['imgtype']);

$imgname = "img.".$imgtypeget[1];
$imgtype = $row['imgtype'];
$imgsize = $row['imgsize'];

header("Content-length: ".$imgsize);
header("Content-type: ".$imgtype);
print base64_decode($row['img']);

print $row['img'];
}
</code>

questionAnswers(1)

yourAnswerToTheQuestion