Walcząc o wyświetlenie obrazu blob za pomocą php
Buduję prostą stronę internetową, chcę umożliwić użytkownikom przesyłanie i zmienianie ich awatarów. Obecnie udało mi się przesłać obrazy do bazy danych mysql, zapisanej jako bloby z kodem w następujący sposób:
//connected to DB, userID fetched
$image = $FILES['fileToUpload']['tmp_name'];
$fp = fopen($image, 'r');
$content = fread($fp, filesize($image));
$content = addslashes($content);
fclose($fp);
$sql = "UPDATE tbUsers SET profileImage = '".$content."' WHERE userID = ".userID;
$result = mysql_query($sql) or die (mysql_error());
Po pobraniu plików z phpmyadmin po przesłaniu są one zapisywane jako pliki .bin, ale można je normalnie przeglądać. Nie jestem pewien, czy to jest poprawne, czy nie. Mój kod do wyświetlania obrazów jest następujący:
HTML:
<?php echo '<img src ="showPic.php?q='.$_SESSION['profile'].'"/>'; ?>
PHP:
if (!empty($_GET['profile']) && is_numeric($_GET['profile']))
{
$con = mysql_connect("localhost", "root", "");
$mysql_select_db("projectDB");
$sql = "SELECT profileImage FROM tbUsers WHERE userID = ". $_GET['profile'];
$result = mysql_query($sql) or die (mysql_error());
header('Content-type: image/jpeg');
$row = mysql_fetch_object($result);
echo $row['image_data'];
}
Nie jestem pewien, czy próbuję wyświetlić obraz we właściwy sposób, jakakolwiek pomoc (poprawki / rozwiązania alternatywne) byłaby bardzo mile widziana :)