public function actionApi($path = '/') { if ($path == '/') { $path = '/' . $this->module->mediaFolder . '/' . \Yii::$app->getUser()->identity->username . '/'; } $view = $this->getView(); $assets = ModuleAsset::register($view); $fm = new FmApi($assets->baseUrl, $this->module->mediaFolder, \Yii::$app->user->id); $response = ''; if (!isset($_GET)) { $fm->error($fm->lang('INVALID_ACTION')); } else { if (isset($_GET['mode']) && $_GET['mode'] != '') { switch ($_GET['mode']) { default: $fm->error($fm->lang('MODE_ERROR')); break; case 'getinfo': $response = $fm->getInfo($path); break; case 'getfolder': $response = $fm->getFolder($path); break; case 'delete': $response = $fm->deleteEntity($path); break; case 'addfolder': $name = $_GET['name']; $response = $fm->addFolder($path, $name); break; case 'download': // don't work $ret = $fm->directLink($path); if (is_array($ret)) { return $this->redirect($ret); } var_dump(Url::toRoute($ret)); die; if ($fm->getvar('path')) { $fm->download(); } break; case 'rename': // don't work if ($fm->getvar('old') && $fm->getvar('new')) { $response = $fm->rename(); } break; case 'move': // don't work // allow "../" if ($fm->getvar('old') && $fm->getvar('new') && $fm->getvar('root')) { $response = $fm->move(); } break; case 'editfile': // don't work if ($fm->getvar('path')) { $response = $fm->editfile(); } break; } } else { if (isset($_POST['mode']) && $_POST['mode'] != '') { switch ($_POST['mode']) { default: $fm->error($fm->lang('MODE_ERROR')); break; case 'add': // don't work $path = $_POST['currentpath']; $media = new Enginer($this->module); if ($_FILES['newfile']['error']) { $msg = 'File upload error'; switch ($_FILES['newfile']['error']) { case UPLOAD_ERR_INI_SIZE: $msg = 'UPLOAD_ERR_INI_SIZE'; break; //Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini. //Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini. case UPLOAD_ERR_FORM_SIZE: $msg = 'UPLOAD_ERR_FORM_SIZE'; break; //Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме. //Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме. case UPLOAD_ERR_PARTIAL: $msg = 'UPLOAD_ERR_PARTIAL'; break; //Значение: 3; Загружаемый файл был получен только частично. //Значение: 3; Загружаемый файл был получен только частично. case UPLOAD_ERR_NO_FILE: $msg = 'UPLOAD_ERR_NO_FILE'; break; //Значение: 4; Файл не был загружен. //Значение: 4; Файл не был загружен. case UPLOAD_ERR_NO_TMP_DIR: $msg = 'UPLOAD_ERR_NO_TMP_DIR'; break; //Значение: 6; Отсутствует временная папка. Добавлено в PHP 5.0.3. //Значение: 6; Отсутствует временная папка. Добавлено в PHP 5.0.3. case UPLOAD_ERR_CANT_WRITE: $msg = 'UPLOAD_ERR_CANT_WRITE'; break; //Значение: 7; Не удалось записать файл на диск. Добавлено в PHP 5.1.0. //Значение: 7; Не удалось записать файл на диск. Добавлено в PHP 5.1.0. case UPLOAD_ERR_EXTENSION: $msg = 'UPLOAD_ERR_EXTENSION'; break; //Значение: 8; PHP-расширение остановило загрузку файла. PHP не предоставляет способа определить какое расширение остановило загрузку файла; в этом может помочь просмотр списка загруженных расширений из phpinfo(). Добавлено в PHP 5.2.0. } $response = ['Error' => $msg, 'Code' => '-1', 'Properties' => []]; } else { $newfile = $media->upload('newfile'); if ($newfile) { $response = $fm->add($newfile, $path); } else { $response = ['Error' => 'File upload error', 'Code' => '-1', 'Properties' => []]; } } break; case 'replace': // don't work if ($fm->postvar('newfilepath')) { $fm->replace(); } break; case 'savefile': // don't work if ($fm->postvar('content', false) && $fm->postvar('path')) { $response = $fm->savefile(); } break; } echo '<textarea>' . json_encode($response) . '</textarea>'; die; } } } echo json_encode($response); die; }
<?php /** * @copyright Copyright (c) 2015 Evgeny Lubyanoi * @license https://github.com/simplator/medialib/blob/master/LICENSE.md * @author Evgeny Lubyanoi <*****@*****.**> */ use yii\widgets\ActiveForm; use yii\helpers\Html; /** * @var yii\web\View $this * @var simplator\medialib\models\Picture $picture */ $asset = \simplator\medialib\ModuleAsset::register($this); $baseurl = $asset->baseUrl; $img = $baseurl . '/file-add.png'; if (!$picture->getIsNewRecord()) { $img = $picture->directlink('preview'); } ?> <div class="medialib-widget-select" style="background-image: url(<?php echo $img; ?> )" data-add="<?php echo $baseurl; ?> /file-add.png" data-uploading="<?php echo $baseurl; ?> /file-uploading.gif" id="<?php
/** * Registers required script for the plugin to work as DatePicker */ public function registerClientScript() { $view = $this->getView(); $assets = ModuleAsset::register($view); $assets->js[] = 'js/jquery.fileselect.js'; }