2015-02-06 2 views
0

Я не могу заставить свой браузер отображать изображение из базы данных (хранится как blob). Я пробовал заголовок («Content-type: image/jpeg»); echo '';Невозможно отобразить blob-изображение из базы данных с помощью PHP

Но он по-прежнему не может отображаться в браузере.

getImage.php

<?php 
require_once 'php-activerecord/ActiveRecord.php'; 

ActiveRecord\Config::initialize(function($cfg) { 
    $cfg->set_model_directory('models'); 
    $cfg->set_connections(array(
     'development' => 'mysql://root:[email protected]/BondingTogether')); 
}); 

$id = addslashes($_REQUEST['id']); 

$row = food::find_by_foodid($id); 
$image = $row->image; 
//$image = "" 


//header("Content-Type: image/jpg"); 
header("Content-type: image/jpeg"); 
//echo '<img src="data:image/jpeg;base64,'.base64_encode($image).'"/>'; 
echo $image; 
//echo base64_decode($image); 

Добавление в базу данных

<?php 

require_once 'php-activerecord/ActiveRecord.php'; 

ActiveRecord\Config::initialize(function($cfg) { 
    $cfg->set_model_directory('models'); 
    $cfg->set_connections(array(
     'development' => 'mysql://root:[email protected]/BondingTogether')); 
}); 

//files 
$file = $_FILES['foodimage']['tmp_name']; 
if (!isset($file)) { 
} 
else { 
    //$image = addslashes(file_get_contents($_FILES['foodimage']['tmp_name'])); 
    $image_name = addslashes($_FILES['foodimage']['tmp_name']); 
    $image_size = getimagesize($_FILES['foodimage']['tmp_name']); 

    if ($image_size == FALSE) { 
     die('Please select an image file'); 
    } else { 

    } 
} 
$image = addslashes(file_get_contents($_FILES['foodimage']['tmp_name'])); 
//$image = chunk_split(base64_encode(file_get_contents("image.jpg"))); 

Food::create(array(
    'xcoord' => $_POST['XCoord'] 
    , 'ycoord' => $_POST['YCoord'] 
    , 'title' => $_POST['title'] 
    , 'category' => $_POST['cat'] 
    , 'description' => $_POST['desc'] 
    , 'image' => $image 
)); 
+0

Я пробовал заголовок («Content-type: image/jpeg»); и echo ''; –

ответ

2

Вы не должны использовать addslashes() при сохранении данных изображения в вашей БД. Лучшей альтернативой является вставка данных изображения с помощью base64_encode() и base64_decode() при его выводе. Простой поиск найдет много хороших ответов на этот и подобные вопросы

+0

Значит, это была добавка! БЛАГОДАРИМ ВАС ТАК МНОГО ОМГ! –

Смежные вопросы