我有一个 mysql blob 字段,我们的团队在其中存储了每条记录的图像。现在我想通过 php 脚本下载我硬盘上的所有图像。我们将不胜感激。
最好的祝福...
艾莎
$result=mysql_query("SELECT * FROM test WHERE 1");
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$filename = rand(1, 100).'.txt';
file_put_contents('./'.$filename, $row['blob']);
}
这是有效的(经过测试)。
它将以随机文件名(1-100.txt)保存文件。
您可以通过更改 $filename 来更改文件名。
这是一个简单的 MySQL 表示例,其中包含 2 个演示文件,内容为 Test #1 和 Test #2:
CREATE TABLE IF NOT EXISTS `test` (`blob` blob NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `test` (`blob`) VALUES(0x5468697320697320746573742023312e), (0x5468697320697320546573742023322e);
您可以使用 file_put_contents,
从数据库中获取行并 foreach 行将 blob/数据写入文件
你也可以试试这个…………
function save_file($file_id, $target_folder) {
$result = $DB->get_file($file_id);
$file_content = $result->fields['your_file_content_field'];
$name = $result->fields['name'];
/* Decode only if the file contents base64 encoded
* before inserting to database.
*/
$file_content = base64_decode($file_content);
return file_put_contents($target_folder.'/'.$name, $file_content);
}