从数据库中提取图片时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中没有此类文件或目录
答案 0 :(得分:1)
您的图像似乎存储在数据库中的BLOB中,并且您的查询将检索图像数据。
在这种情况下,您应该使用getimagesizefromstring()
(http://php.net/manual/en/function.getimagesizefromstring.php)代替getimagesize()
来查找图片的尺寸。
但要注意,MySQL绑定有时很难从数据库中检索大型BLOB。