Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
<?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 
Ejemplo n.º 3
0
 /**
  * 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';
 }