【发布时间】:2019-05-21 06:43:07
【问题描述】:
当用户想在我的 PHP 站点上解压缩文件时(主机使用 Ubuntu 16.04),它适用于 Linux 或 MAC 用户,但不适用于 Windows 用户,只需上传 zip 文件而不解包。 我使用了这些解决方案:
echo exec("unzip $file_name ",$result, $returnval );
或$zip = new ZipArchive;
$res = $zip->open($file_name);
$zip->extractTo($dir);
$zip->close();
还测试了 PclZip 库$archive = new PclZip($file_name);
$result = $archive->extract(PCLZIP_OPT_PATH, $dir);
【问题讨论】:
-
您的 Windows PC 上是否有一个名为“解压缩”的命令行应用程序?如果是这样,它是否在 Web 服务器运行的路径中?在第二个例子中,Web服务器进程是否对
$dir有写权限? -
运行
phpinfo()以确定您是否安装了 zip 扩展。 -
它是我的虚拟主机上的代码(它使用 ubuntu 16.04),当用户在我的网站上解压缩文件时(如果他们有 MAC 或 Linux)它可以工作,但对于 Windows 用户只需在网站上上传 zip 而无需开箱
-
您是否遇到任何错误?定义“不起作用”?您需要描述如何“压缩”文件。如果您使用相同的相同文件,则客户端操作系统不应考虑在内。我认为这更多地是关于如何压缩文件。
-
我在不同的笔记本电脑上测试了我从 Gmail 下载的一个 zip 文件,它在 Ubuntu 上从我的笔记本电脑上解压缩,而不是从 Windows 上的笔记本电脑上解压缩。我都用过chrome
标签: php exec new-operator unzip ziparchive