我正在使用PHP生成并强制下载包含数据库表中列出的一系列照片的ZIP文件。
一切似乎都很好用,但我似乎无法弄清楚为什么照片会以相同的文件大小继续下载。
我假设文件没有被正确压缩,我认为它可能是标题,但我只是不确定。
有人可以解释我的问题吗?
CODE:
require ("zipfile.inc.php");
$zipfile = new zipfile();
$filedata = implode("", file("zipfile.inc.php"));
$getspdi = mysql_query("SELECT * FROM `wedding_photos` WHERE `user_hash` = '$logged[ip]' ORDER BY `id` DESC LIMIT 0, 1000") or die(mysql_error());
$getspd = mysql_fetch_array($getspdi);
while ($photos = mysql_fetch_array($getspdi)) {
$zipfile->add_file($filedata, "$photos[img]");
}
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
header("Content-disposition: attachment; filename=szipfile.zip");
echo $zipfile->file();
我正在使用名为“zipfile.inc.php”的现有类(http://www.devco.net/code/zipfile.inc.txt)。
任何帮助将不胜感激,
感谢。
答案 0 :(得分:2)
大多数图片格式已经过压缩。这包括JPEG,PNG和GIF。您无法使用ZIP压缩进一步压缩此类格式的文件。实际上,有些格式已经使用了相同的压缩算法,这使得几乎不可能减小任何尺寸。
答案 1 :(得分:2)
这条线毫无意义:
$zipfile->add_file($filedata, "$photos[img]");
然后,您要添加zipfile.inc.php
的内容并为其提供图像名称。
您需要从某处获取实际图像数据。