如何从mysql数据库中获取图像数据时getimagesize()

时间:2014-09-14 17:20:58

标签: php mysql image

从数据库中提取图片时getimagesize($image_temp)imagecreatefromjpeg($image_temp)的正确参数是什么。

请帮助我,谢谢。

TABLE IN DB

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);

错误
警告::无法打开流:第18行的D:\ xampp \ htdocs \ mysite \ php \ imageread.php中没有此类文件或目录

警告::无法打开流:第31行的D:\ xampp \ htdocs \ mysite \ php \ imageread.php中没有此类文件或目录

1 个答案:

答案 0 :(得分:1)

您的图像似乎存储在数据库中的BLOB中,并且您的查询将检索图像数据。

在这种情况下,您应该使用getimagesizefromstring()http://php.net/manual/en/function.getimagesizefromstring.php)代替getimagesize()来查找图片的尺寸。

但要注意,MySQL绑定有时很难从数据库中检索大型BLOB。