Создайте ZIP-файл на PHP: существует ли класс ZipArchive в Bluemix?

Я разрабатываю простое PHP-приложение, и мне нужно загрузить несколько файлов одним запросом, что в данном случае происходит по нажатию кнопки. Я видел несколько веб-ресурсов, которые говорят, что это можно сделать, создав zip-файл, содержащий файлы, которые я хочу загрузить. Первые две инструкции для этого:

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

Но во время выполнения первая инструкция не работает. В окне журнала появляется следующая ошибка:

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

Я повторил phpinfo(), чтобы узнать, включен ли ZipArchive в Bluemix, но не нашел.

Если это возможно сделать, то как я могу заставить это работать?

В противном случае, есть ли другой способ загрузить несколько файлов, который работает в Bluemix?


person Dieghitus    schedule 15.05.2016    source источник


Ответы (2)


Вы должны добавить модуль PHP zip в файл options.json.

Если у вас еще нет файла options.json, вы можете создать его в каталоге .bp-config в корневом каталоге вашего приложения.

Файл options.json должен иметь следующий формат:

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

После создания этого файла снова нажмите ваше приложение, используя cf push.

person Alex da Silva    schedule 15.05.2016
comment
Благодарю вас! Я создал папку и файл (в котором строка $more .bp-config/options.json вне скобок выдает ошибку и это не правильно, я не так написал, да?), но это не т работать. если я пишу zip или другое расширение, такое как zlib или pdo, содержимое страницы не загружается. Вместо этого, если я пишу, например, curl, он работает без проблем... Вы знаете, почему? - person Dieghitus; 15.05.2016
comment
Извините, я не понял, вам не нужно добавлять $more ... в файл. Я обновил ответ с правильным форматом файла. - person Alex da Silva; 16.05.2016
comment
Оно работает! Раньше я включал только zip, но, поскольку объявление php_extensions перезаписывает значение по умолчанию, мне нужно было также включить curl, чтобы весь проект работал. Благодарю вас! - person Dieghitus; 16.05.2016
comment
Я рад, что это работает сейчас. Не могли бы вы тогда принять мой ответ? - person Alex da Silva; 16.05.2016

Похоже, BlueMix не добавил его на свой сервер, поэтому вы не можете его использовать.

Возможно, это альтернатива для вас: https://github.com/Grandt/PHPZip

person faulix90    schedule 15.05.2016
comment
Я взгляну. Благодарю вас! - person Dieghitus; 15.05.2016