%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/controllers/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/controllers/ZipController.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\cfiles\controllers;
use humhub\modules\cfiles\actions\UploadZipAction;
use Yii;
use yii\web\HttpException;
use humhub\modules\cfiles\libs\ZIPCreator;
use humhub\modules\cfiles\widgets\FileList;
use yii\web\UploadedFile;
/**
* ZipController
*
* @author Sebastian Stumpf
*/
class ZipController extends BrowseController
{
public function getAccessRules()
{
return [
['checkZipSupport']
];
}
public function actions()
{
return [
'upload' => [
'class' => UploadZipAction::class,
],
];
}
public function checkZipSupport($rule, $access)
{
if (!$this->module->isZipSupportEnabled()) {
$access->code = 404;
$access->reason = Yii::t('CfilesModule.base', 'ZIP support is not enabled.');
return false;
}
return true;
}
/**
* Action to download a zip of the selected items.
*/
public function actionDownload()
{
$items = FileList::getSelectedItems();
if (count($items) === 0) {
// Fallback to current folder when not items are selected
$items[] = $this->getCurrentFolder();
}
$zip = new ZIPCreator();
foreach ($items as $item) {
$zip->add($item);
}
$zip->close();
return Yii::$app->response->sendFile($zip->getZipFile(), (count($items) == 1) ? $items[0]->title . '.zip' : 'files.zip');
}
}