Как getimagesize () при получении данных изображения из базы данных MySQL

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

Пожалуйста, помогите мне, спасибо.

ТАБЛИЦА В БД

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

0

Решение

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

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector