0

我有一个 mysql blob 字段,我们的团队在其中存储了每条记录的图像。现在我想通过 php 脚本下载我硬盘上的所有图像。我们将不胜感激。

最好的祝福...

艾莎

4

3 回答 3

1
$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);
于 2013-02-19T07:39:24.453 回答
0

您可以使用 file_put_contents,

从数据库中获取行并 foreach 行将 blob/数据写入文件

从 PHP 写入图像文件时出错

http://php.net/manual/en/function.file-put-contents.php

于 2013-02-19T07:34:05.187 回答
0

你也可以试试这个…………

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);
}
于 2013-02-19T07:35:00.633 回答