2014-09-14 3 views
0

Что такое правильные параметры для getimagesize($image_temp) и imagecreatefromjpeg($image_temp), когда выборка изображений из базы данных.

Пожалуйста, помогите мне, спасибо.Как getimagesize() при извлечении данных изображения из базы данных mysql

СТОЛ В БД

CREATE TABLE `image` (
`name` varchar(255) NOT NULL, 
`mime` varchar(50) NOT NULL, 
`size` int(20) NOT NULL, 
`data` mediumblob NOT NULL, 
`created` datetime NOT NULL, 
`userid` int(10) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

PHP

$sql = "SELECT * FROM `image` WHERE ids = '0' limit 1"; 
$sqlquery = mysql_query($sql)or die(mysql_error()); 
$data = mysql_fetch_assoc($sqlquery); 

    $image_name = $data['name']; //file name 
    $image_size = $data['size']; //file size 
    $image_temp = $data['data']; //file blob 
    $image_type = $data['mime']; //file type 

    // Parameter incorrect 
    list($width, $height) = getimagesize($image_temp); 

    // Parameter incorrect 
    $source = imagecreatefromjpeg($image_temp); 

ОШИБКА
Предупреждение: не удалось открыть поток: Нет такого файла или каталога в D: \ XAMPP \ htdocs \ mysite \ php \ imageread.php в строке 18

Предупреждение: не удалось открыть поток: Нет такого файла или каталога в D: \ XAMPP \ HTDOCS \ MySite \ PHP \ imageread.php по строке 31

ответ

1

Кажется, что ваш образ хранится в виде BLOB в базе данных, и ваш запрос извлекает данные изображения.

В этом случае вы должны использовать getimagesizefromstring() (http://php.net/manual/en/function.getimagesizefromstring.php) вместо getimagesize(), чтобы узнать размеры изображения.

Но будьте осторожны, привязки MySQL иногда испытывают трудности с получением больших BLOB-данных из базы данных.

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