PHP ZIP生成相同的文件大小


PHP ZIP generating Same File Size

我使用PHP生成并强制下载一个ZIP文件,该文件包含从数据库表中列出的一系列照片。

一切似乎都很好,但我似乎不明白为什么这些照片总是以相同的文件大小下载。

我假设文件没有被正确压缩,我认为它可能是头,但我只是不确定。

有谁能给我的问题指点指点吗?

代码:

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)的现有类。

任何帮助都将不胜感激,

谢谢。

这一行没有意义:

 $zipfile->add_file($filedata, "$photos[img]");

这样,您就可以添加zipfile.inc.php的内容并为其赋予图像名称。

您需要从某处获取实际的图像数据

大多数图像格式已经被压缩。包括JPEG、PNG和GIF。使用ZIP压缩不能进一步压缩这种格式的文件。事实上,有些格式已经使用了相同的压缩算法,这使得几乎不可能减少任何大小。