【问题标题】:PHP unzip file on the site网站上的PHP解压文件
【发布时间】: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


【解决方案1】:

解决了! Windows 和 Linux 浏览器发送不同的文件类型: $_FILES['file']['type'] 在 Linux 浏览器中是“application/zip”,但在 Windows 中是“application/x-zip-compressed” 我使用检查文件类型的条件。 感谢所有试图帮助我的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    相关资源
    最近更新 更多