我有blob
数据库字段中的图片。
有没有办法检查字段的mime类型而不保存?
getimagesize() and mime_content_type()
需要文件名...
我想做这样的事情:
<img \n" . 'src="data:image/gif;base64,' . $base64 .
'" alt="base64 img" width="80" height="15" />
答案 0 :(得分:3)
当您将文件数据插入数据库时,您确实应该使用它保存MIME类型。检测并不完美,至少速度较慢。
无论如何:
$mime_type = finfo_buffer($f, $imgdata, FILEINFO_MIME_TYPE);
答案 1 :(得分:1)
您可以检查二进制文件中的前几个字节来确定这一点。这称为检查“文件签名”。
以下是我用来编写自己的代码的一些有用的链接:
答案 2 :(得分:0)
据我所知,你不能这样做。实际上,您应始终将图像类型与blob图像数据一起存储在数据库中。
但基本上你只需打印blob数据并设置标题即可在浏览器中显示图像。
header ("Content-type: image/jpeg");
$sql = "SELECT blobfield FROM table WHERE ...";
$result = mysql_query($sql, $conn);
$img = mysql_fetch_row($result);
print $img[0];
答案 3 :(得分:0)
这是可能的,但您必须了解您可能遇到的图像类型。例如,GIF在数据的前三个字节中显示“GIF”。
http://www.onicos.com/staff/iz/formats/gif.html
使用此信息,您可以检查blob中的流并采取相应措施。不确定你是否关心那么多工作,但它是可行的。