forma correcta de subir la imagen a la base de datos

Sé que algunos de ustedes van a decir que esta no es la forma correcta, pero tengo una fecha límite para finalizar una solicitud y, a partir de ahora, no puedo volver y modificar el código para almacenar las imágenes en un directorio.

ahora que eso está despejado

La pregunta que tuve fue que inserté una imagen en la base de datos escribiendo esto.

(No importa la llamada de seguridad de clase, todo lo que está haciendo es un par de comprobaciones si los datos son 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>

La variable $ contenido es la imagen y todo lo que se obtiene son las barras de adición. Recuerdo que una vez alguien mencionó hacerlo con algo llamado base64, pero apenas puedo recordar cómo se escribió.

Así es como llamo a la imagen de la base de datos.

Además de todas las consultas, esta es la parte principal que llama a la imagen.

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

El problema que tengo es que en lugar de mostrar la imagen. la url solo se muestra, por lo que en este caso solo veo esto

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

al abrir la página para ver la imagen con los parámetros correctos establecidos en la url.

Para aquellos que querían ver la consulta que se está haciendo para guardar la imagen, etc., copié toda la sección.

<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>

Respuestas a la pregunta(1)

Su respuesta a la pregunta