我在数据库中将各种图像拆分为blob文件。我编写了一个php脚本来访问这些blob文件并在本地下载。
由于有很多图像我放了一个循环,可以下载存储在数据库中的所有图像,但是当我在循环中运行脚本时,我得到一个大的下载而没有单独的图像。
我的代码如下:
$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等),将下载不同的图像,但它对我必须使用的图像数量无用。
非常感谢任何帮助!
答案 0 :(得分:1)
您只能通过一个PHP脚本运行获得一次文件。 在你的情况下,我认为最好的方法是,将所有文件从DB存储到临时文件夹,当zip(或GZ)此文件夹时,以及在您的标题()
中使用相应的MIME类型输出此ZIP(或GZ)存档之后