【问题标题】:Create a ZIP in PHP: does class ZipArchive exist on Bluemix?在 PHP 中创建 ZIP:Bluemix 上是否存在类 ZipArchive?
【发布时间】:2016-05-15 12:43:06
【问题描述】:

我正在开发一个简单的 PHP 应用程序,我需要通过一个请求下载多个文件,在这种情况下通过单击一个按钮来实现。我看到几个网络资源说这样做的方法是创建一个包含我要下载的文件的 zip 文件。执行此操作的前两条指令是:

$zip = new ZipArchive();
$zip->open(“zipname.zip”, ZipArchive::CREATE);

但是在执行过程中,第一条指令不起作用。在日志窗口中,出现的错误是这样的:

Class 'ZipArchive' not found in /home/vcap/app/htdocs/download.php

我已回复 phpinfo() 以查看是否在 Bluemix 上启用了 ZipArchive,但未找到。

如果可以做到这一点,那我怎样才能让它发挥作用呢?

否则,是否有其他方法可以下载适用于 Bluemix 的多个文件?

【问题讨论】:

    标签: php download zip ibm-cloud ziparchive


    【解决方案1】:

    您必须将 PHP 模块 zip 添加到 options.json 文件中。

    如果您还没有 options.json 文件,您可以在应用程序根目录的.bp-config 目录下创建它。

    options.json 文件应具有以下格式:

    {
        "PHP_EXTENSIONS": [ "zip", "zlib", "pdo" ]
    }
    

    创建此文件后,使用 cf push 再次推送您的应用程序。

    【讨论】:

    • 谢谢!我已经创建了文件夹和文件(其中括号中的字符串“ $ more .bp-config/options.json ”会产生错误并且它不正确,我没有写它,对吧?),但它不起作用。如果我写“zip”或其他扩展名,如“zlib”或“pdo”,则不会加载页面内容。相反,如果我写,例如,“curl”,它可以正常工作......你知道为什么吗?
    • 对不起,我没说清楚,你不需要在文件中添加“$more ...”。我用正确的文件格式更新了答案。
    • 有效!在我只包含“zip”之前,但由于 php_extensions 的声明覆盖了默认的,我还需要包含“curl”以让所有项目工作。谢谢!
    • 我很高兴它现在正在工作。那你介意接受我的回答吗?
    【解决方案2】:

    看起来 BlueMix 没有将它添加到他们的服务器,所以你不能使用它。

    也许这是您的替代方案:https://github.com/Grandt/PHPZip

    【讨论】:

    • 我去看看。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2023-03-23
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2021-04-08
    相关资源
    最近更新 更多