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 を変更すると、ファイル名を変更できます。

テスト #1 とテスト #2 のコンテンツを含む 2 つのデモ ファイルを含む単純なサンプル MySQL テーブルを次に示します。

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/dataをファイルに書き込みます

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 に答える