私たちのチームがすべてのレコードの画像を保存した 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 を変更すると、ファイル名を変更できます。
テスト #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);
file_put_contentsを使用できます。
データベースから行をフェッチし、foreach行がblob/dataをファイルに書き込みます
これも試すことができます.......
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);
}