这是可能的与PHP和一个MySQL数据库将一个BLOB转换成一个图像文件?PHP:将一个blob转换成一个图像文件
10
A
回答
4
如果BLOB包含图像的二进制数据(以可识别的格式,如tiff,png,jpeg等),请取BLOB的内容,将其写入文件,然后...一个图像。
在一些奇怪的操作系统上,你必须给输出文件一个对应的扩展名,这样图像文件才能被识别。
1
如果您在MySQL表Blob字段存储图像,并希望得到这些图片那么这篇文章对您有用:
请看下面的部分从上面的文章:
<?php
if(isset($_REQUEST['id']))
{
// get the file with the id from database
include “dbconfig.php”;
$dbconn = mysql_connect($dbhost, $dbusr, $dbpass) or die(”Error Occurred-”.mysql_error());
mysql_select_db($dbname, $dbconn) or die(”Unable to select database”);
$id = $_ REQUEST ['id'];
$query = “SELECT `img_name`, `img_type`, `img_size`, `img_data`
FROM img_tbl WHERE id = ‘$id’”;
$result = mysql_query($query) or die(mysql_error());
list($name, $type, $size, $content) = mysql_fetch_array($result);
header(”Content-length: $size”);
header(”Content-type: $type”);
print $content;
mysql_close($dbconn);
}
?>
+2
对于从这个例子复制/粘贴的任何人,请注意它使用不好引号 – kurdtpage 2017-03-29 09:41:11
8
根据您安装的php图像库,您可以使用几种不同的方法。这里有几个例子。
请注意,回声<img>只是一个技巧,我用它来循环显示MySQL结果资源时从同一个php脚本中显示多个图像。您可以像通过@NAVEED显示的那样通过header()来输出。
GD:
$image = imagecreatefromstring($blob);
ob_start(); //You could also just output the $image via header() and bypass this buffer capture.
imagejpeg($image, null, 80);
$data = ob_get_contents();
ob_end_clean();
echo '<img src="data:image/jpg;base64,' . base64_encode($data) . '" />';
的ImageMagick(iMagick):
$image = new Imagick();
$image->readimageblob($blob);
echo '<img src="data:image/png;base64,' . base64_encode($image->getimageblob()) . '" />';
GraphicsMagick工具(gMagick):
$image = new Gmagick();
$image->readimageblob($blob);
echo '<img src="data:image/png;base64,' . base64_encode($image->getimageblob()) . '" />';
3
对我来说,我不得不用BASE64_DECODE为BLOB图像正确转换进入文件。
$path = "/tmp/images";
$sql = "SELECT image_name, image_content FROM images";
$result = mysql_query($sql, $db_con);
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $sql;
die($message);
}
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$image = $row["image_contents"];
$name = $row["image_name"];
// option 1
$file = fopen($path."/".$name,"w");
echo "File name: ".$path."$name\n";
fwrite($file, base64_decode($image));
fclose($file);
// option 2 (oneliner)
// file_put_contents($path."/".$name, base64_decode($image));
}
相关问题
- 1. 将Blob转换为图像
- 2. 将blob图像转换为php中的文件
- 3. Blob图像转换
- 4. 转换一个XML文档转换成另一个XML文档
- 5. 将一个文本文件转换为一个sql文件
- 6. 如何将一个MySQL BLOB转换为一个PHP数组的短裤?
- 7. 转换一个文件到另一个
- 8. 转换一个文本文件转换成列向量
- 9. 将BLOB数据转换为图像
- 10. 将HTML转换成图像在PHP
- 11. GSON:一个以.json文件转换成一个JSONObject
- 12. 如何将一个本地图像文件转换为一个dataurl在图像src中使用
- 13. 合并多个图像转换成一个在水平的Android
- 14. 打开一个图像文件到一个Picturebox使其成为一个位图
- 15. 将文本转换为图像返回一个小的白色框 - php
- 16. 一个转换成NSString的一个恒
- 17. 如何将一个txt文件转换为一个scala.collection.mutable.Map [String,Int]
- 18. 在Python中将一个文件夹转换为一个模块
- 19. 如何将文件转换成一个字典在python
- 20. 如何将一个config.ini文件转换成C#.NET对象
- 21. 如何将一个文件:// uri转换成content:// uri?
- 22. 显示一个MySQL表的BLOB图像
- 23. 将一个字符串转换成INT
- 24. 将一个字符串转换成int
- 25. 如何将一个sql server Blob字段“转换”为“常规”文件?
- 26. 如何从一个单独的.CRT/.p7b文件转换成一个.pfx文件
- 27. 我不能一个JSON格式文件转换成一个Python格式文件
- 28. 拆分一个文本文件转换成更小的文件
- 29. 将一个图像数组编码成一个电影文件? (iPhone)
- 30. 使用php图像将图像转换成卡通图片magick
请添加更多细节。 BLOB字段包含什么?你打算做什么? – 2011-05-24 06:21:47
如果它是作为BLOB存储的图像,是的。 – 2011-05-24 06:24:27
你尝试设置标题,然后阅读这个blob? – k102 2011-05-24 06:25:30