【发布时间】:2016-11-23 17:03:54
【问题描述】:
查询返回 71 行,但只下载了一张图片。所有图像文件均为 jpeg,最大文件大小为 2 MB;大多数小于 1 MB。 fsize 行被注释掉,因为它们无法返回 jpg 图像文件。
我打开下载的一张图片没有问题,所以我做对了。我怎样才能获得其他 70 张图像?我对 PHP 并不深入,但我完成了我需要完成的工作。这是我的代码:
<?php
$query = "SELECT imagefilename FROM imageinfo WHERE accepted = 1 ";
$result = mysqli_query($connect, $query);
while ($row = mysqli_fetch_array($result))
{
$imagefilename = $row[0];
$sourcefile = 'http://domain.com/images/'.$imagefilename;
if ($fd = fopen ($fullPath, "r"))
{
//$fsize = filesize($sourcefile);
// if IE, otherwise Content-Disposition ignored
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
header("Content-type: image/jpg");
header("Content-Disposition: attachment; filename=$imagefilename");
//header("Content-length: $fsize");
header("Cache-control: private");
while(!feof($fd))
{
$buffer = fread($fd, 2097152);
echo $buffer;
}
}
fclose ($fd);
} //end while
?>
【问题讨论】:
-
你不能,使用 HTTP 协议,你可以根据请求下载单个文件。
-
谢谢,这有助于让我走出死胡同。但是谁能指出我如何完成我想要做的事情?
-
您可以随时随地创建一个 zip 文件,并根据单个请求下载单个 zip 文件。
-
这听起来很有希望。我必须将子集移动到另一个文件夹并压缩它。我将开始研究如何做这一切,如果我成功了,我会报告,以便其他人可以获利。
标签: php image-processing