我使用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压缩不能进一步压缩这种格式的文件。事实上,有些格式已经使用了相同的压缩算法,这使得几乎不可能减少任何大小。