私はdrupalモジュールを作成しました。モジュールの機能の1つは、いくつかのファイルを圧縮してzipパッケージにすることです。ローカル環境(xampp)では正常に動作しますが、サーバーでは失敗します。私のサーバーではphpzip拡張機能が有効になっています。これは、php情報でzip情報を確認でき、phpでファイルを解凍できるためです。
その上、私はすでに0777になるようにファイルをchmodします。
私のコード:
$folder = file_directory_path();
$zip = new ZipArchive();
if ($zip->open('b.zip', ZIPARCHIVE::CREATE) === TRUE) {
foreach ( $files as $file ) {
drupal_set_message(t($file)); // I can see the the message on this stpe
$zip->addFile($file);
}
$zip->close();
if (file_exists('b.zip')) {
copy('b.zip', $folder . '/b.zip');
unlink('b.zip');
global $base_url;
variable_set('zippath', $base_url . $folder . '/b.zip');
drupal_set_message(t('new zip package has been created'));
}
} else {
drupal_set_message(t('new zip package failed'));
}