1

我正在建立一个网站,作为公司广告作品的投资组合。他们上传文件,可以在画廊等中查看。他们想要的另一个功能是让特权用户能够下载整个画廊。

我面临两个选择(我能想到的)在文件上传时添加到现有存档中,这将增加响应时间或在每次有人希望下载图库时构建存档。

我不知道 php 提供的压缩实用程序背后的机制或数据结构,所以我问你哪个最便宜?

图像都是 jpeg,因此压缩没有效果,可能会有数百张高分辨率图像。

4

1 回答 1

1

第三种选择:设置为“cron”作业以每天构建存档。这意味着该过程与用户活动无关,保证会发生并且不会阻止用户。


编辑:回答关于使用哪个实用程序的第二部分。

PHP 手册给出了简要概述: http: //php.net/manual/en/phar.fileformat.comparison.php - 但基本上有两种类型或存档/压缩: - Zip、gzip、bzip(压缩,但有能够将多个文件压缩到一个存档) - rar、tar(存档到单个文件,能够减少构建存档的大小)

如果您不希望通过压缩获得太多收益,请查看其中一种归档功能(tar/rar 等)。最著名的是“rar”,但许可证不允许 PHP 创建 rar 文件,因此您需要使用“tar”。Tar 是最常见的 Linux 文件。您可以通过名为“phar”的 PHP 库http://www.php.net/manual/en/intro.phar.php来做到这一点。

如果你认为你可能想要挤出一些额外的东西,gzip 可能是最好的(但你应该测试看看)。所以拿你的 tar 并用 gzip 压缩。Phar 还可以在一个简单的类中为您处理(phar::compress)。

最后说明:如果您在 Linux 服务器上,则可以通过 exec() 调用 tar 和 gzip 命令(按此顺序)获得绝对最佳的结果,因为它是 Linux 的基础。

于 2012-06-24T02:19:19.783 回答