Невозможно отобразить изображение после его загрузки в базу данных, PHP и Mysql

Мне нужно сделать веб-страницу для того, чтобы клиент мог загружать изображения в базу данных и отображать их.

Я хочу загрузить изображения в базу данных, но у меня проблемы с отображением их, но я не могу понять, почему

Вот мой код:

<!DOCTYPE html> <head> <body> <form action="form.php" method="post" enctype="multipart/form-data"> File: <input type="file" name="image" /> <input type="submit" value="Upload" /> </form> <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("test" ) or die(mysql_error()); $file = $_FILES['image'] ['tmp_name']; if (!isset($file)) { echo "<br>Please select an image."; } else { $image = addslashes(file_get_contents($_FILES['image'] ['tmp_name'])); $imageName = addslashes($_FILES['image']['name']); $imageSize = getimagesize($_FILES['image']['tmp_name']); if ($imageSize == FALSE) echo "<br><br>Thats not an image. <br><br>"; else{ if (!$insert = mysql_query("INSERT INTO imgup VALUES ('','$imageName','$image')")) echo "Problem uploading the image."; else{ $lastId = mysql_insert_id(); echo "Article uploaded.<p /> Your image:<p /> <img src=get.php?id=$lastId>"; } } } ?> </body> </html> 

Это мой файл, который превращает изображение в изображение:

 <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("test" ) or die(mysql_error()); $id = addslashes($_REQUEST['id']); $image = mysql_query("SELECT * FROM blog WHERE id=$id"); $image = mysql_fetch_assoc($image); $image = $image['image']; header("Content-type: image/jpeg"); echo $image; ?> 

И в конце изображение не отображается, и это то, что я получаю: http://goo.gl/gi1Uuc

И если я иду и проверю свою базу данных, изображение успешно загружено …

В зависимости от файла используется встроенная кодировка base64. Это делается с помощью:

 echo '<img src="data:image/jpeg;base64,'.base64_encode( $image ).'"/>'; 

Шрифт: base64_encode

ИЛИ

Поместите T upperCase (Type), потому что может дать ошибку в IE. Попробуйте выполнить печать с помощью функции file_get_contents.

 header('Content-Type: image/jpeg'); echo readfile($image); 

Я не буду хранить изображения в базе данных. Вы должны сохранить его как файл и сохранить имя файла в базе данных. Затем вы можете настроить, в какой каталог загружается изображение, не беспокоясь о полном пути к изображению или сохраняя двоичные данные в вашем дне (yuck).

Попробуйте изменить:

 $image = mysql_query("SELECT * FROM blog WHERE id=$id"); 

чтобы:

 $image = mysql_query("SELECT * FROM blog WHERE id = '$id'"); 

Скрытие файла изображения с помощью imagesize вероятно, испортит его, тест на изображение должен быть достаточным