gpt4 book ai didi

php - 将所有图像从 mysql 数据库 blob 提取到目录

转载 作者:行者123 更新时间:2023-11-29 19:43:11 25 4
gpt4 key购买 nike

我正在努力从 Blob 中提取图片,如图所示该图像当前无法显示,因为它包含错误当我下载它时 解释 JPEG 图像文件时出错(不支持的标记类型 0x5c)并尝试识别该文件是什么并通过“linux shell”获取该文件

[none]$ file PICTURE.bin PICTURE.bin: JPEG image data identify: Unsupported marker type 0x5c `PICTURE.bin' @ error/jpeg.c/JPEGErrorHandler/322

我尝试通过文本编辑器打开它,但一开始就得到了这个奇怪的东西,而不是 JPEG 或 JPG。它在图像文件的开头显示类似“JFIF”的内容我尝试使用 php 脚本来提取图像并直接从 phpmyadmin 下载它,但没有成功我使用的脚本是“不是我的,我在互联网上找到的”:

<?php

// ************* MODIFY THESE FOR YOUR SERVER AND DATABASE SETTINGS *************

// y = first letter in yourdomain.com
// o = second letter in yourdomain.com
$basedir = '/home/zzz/public_html/z/'; // Needs trailing slash
$host = 'localhost';
$user = 'zz'; //(user information)
$password= 'zz'; //(password information)
$dbname = 'zzz';

$type = 'jpg';
$blob_id = 'APLT_ID';
$blob_data = 'PICTURE';
$blob_table = 'zzzz';

// ************************************************** ***************



$db = mysql_connect($host, $user, $password) or die("Could not connect: " . mysql_error());
mysql_select_db($dbname, $db);

$sql = "SELECT $blob_id, $blob_data FROM $blob_table";
echo $sql;
$result = mysql_query($sql);

header('Content-Type: text/html; charset=utf-8');

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row["$blob_id"];
$data = $row["$blob_data"];
$file = "$basedir$id.$type";
echo "Looking for File: $file<br>";
if (!file_exists($file)) {
$fp=fopen($file,"w");
echo "Opening File: $file<br>";
fwrite($fp,$data);
echo "Writing File: $file<br>";
} else {
echo "Skipping File: $file<br>";
fclose($fp);
echo "Closeing File: $file<br>";
}
sleep(1);
}

mysql_free_result($result);
?>

可以对图像进行编码吗?

因为在发帖和寻求帮助之前我只是浪费了两天时间试图弄清楚这件事

最佳答案

图像是二进制数据,需要以二进制模式存储,而不需要对换行符进行任何更改。更改您的代码以二进制模式打开/创建文件,如果数据库中的数据有效,那么您的代码应该可以工作。

$fp=fopen($file,"wb");

关于php - 将所有图像从 mysql 数据库 blob 提取到目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com