PHP ZIP生成相同的文件大小

时间:2011-08-14 10:28:47

标签: php

我正在使用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)。

任何帮助将不胜感激,

感谢。

2 个答案:

答案 0 :(得分:2)

大多数图片格式已经过压缩。这包括JPEG,PNG和GIF。您无法使用ZIP压缩进一步压缩此类格式的文件。实际上,有些格式已经使用了相同的压缩算法,这使得几乎不可能减小任何尺寸。

答案 1 :(得分:2)

这条线毫无意义:

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

然后,您要添加zipfile.inc.php的内容并为其提供图像名称。

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