データベースでさまざまな画像を blob ファイルとして分割しています。これらの blob ファイルにアクセスしてローカルにダウンロードする php スクリプトを作成しました。
多くの画像があるため、データベースに保存されているすべての画像をダウンロードするループを配置しましたが、ループ内でスクリプトを実行すると、1 つの大きなダウンロードが取得され、個別の画像は取得されません。
私のコードは次のとおりです。
$query="SELECT `id` FROM `images` LIMIT 10";
$result=mysql_query($query);
$imageid = array();
while($row = mysql_fetch_assoc($result)){
//iterate over all the fields
foreach($row as $key){
$imageid[] = $key;
}
}
$fileName ='';
for ($i = 0; $i < count($imageid); $i++) {
$query="SELECT `filename` FROM `images` WHERE `id`=".$imageid[$i]."";
$result=mysql_query($query);
while($row = mysql_fetch_assoc($result)){
foreach($row as $key){
$fileName = $key;
}
}
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary");
header('Content-type: application/octet-stream');
header('Content-Disposition: inline; filename='.$fileName.'');
$sql = "SELECT `data` FROM `images_data` WHERE `image_id`=".$imageid[$i]." ORDER BY id";
$result1=mysql_query($sql);
while($row = mysql_fetch_array($result1)) echo $row['data'];
}//END FOR LOOP
スクリプトを実行してすべての画像をダウンロードする方法はありますか? $imageid[$i] のパラメーター (例: 0,1,2,3 など) を手動で変更すると、さまざまな画像がダウンロードされますが、使用する必要がある画像の量には役に立ちません。
どんな助けでも大歓迎です!