コード例 #1
0
 public static function setSelfValue()
 {
     self::$addonDir = dirname(dirname(dirname(__FILE__))) . DS . 'Addon' . DS;
     self::$imageFileBaseDir = WWW_ROOT . 'files' . DS . 'bgeditor' . DS . 'img' . DS;
     self::$otherFileBaseDir = WWW_ROOT . 'files' . DS . 'bgeditor' . DS . 'other' . DS;
     self::$imageFileBaseURL = '' . BC_BASE_URL . 'files/bgeditor/img/';
     self::$otherFileBaseURL = '' . BC_BASE_URL . 'files/bgeditor/other/';
     // casa cms 特定処理
     if (class_exists('CasacmsUtil')) {
         // 代理ログイン対応
         if (isset($_SESSION['Auth']) && isset($_SESSION['Auth']['User']) && isset($_SESSION['Auth']['User']['name'])) {
             $subDomain = $_SESSION['Auth']['User']['name'];
         } else {
             $subDomain = CasacmsUtil::subDomain();
         }
         // ステージング対応
         if ($subDomain == 'stg') {
             $subDomain = 'casacms';
         }
         self::$imageFileBaseDir .= $subDomain . DS;
         self::$otherFileBaseDir .= $subDomain . DS;
         self::$imageFileBaseURL .= $subDomain . '/';
         self::$otherFileBaseURL .= $subDomain . '/';
         if (!file_exists(self::$imageFileBaseDir)) {
             mkdir(self::$imageFileBaseDir);
         }
         if (!file_exists(self::$otherFileBaseDir)) {
             mkdir(self::$otherFileBaseDir);
         }
     }
     // 画像ファイル一覧取得
     $dir = new Folder(self::$imageFileBaseDir);
     $tmpList = array();
     $files = $dir->find();
     foreach ($files as $file) {
         $tmpList[filemtime($dir->pwd() . $file)] = $dir->pwd() . $file;
     }
     krsort($tmpList);
     self::$imageFileList = array_values($tmpList);
     // ファイル一覧取得
     $dir = new Folder(self::$otherFileBaseDir);
     $tmpList = array();
     $files = $dir->find();
     foreach ($files as $file) {
         $tmpList[filemtime($dir->pwd() . $file)] = $dir->pwd() . $file;
     }
     krsort($tmpList);
     self::$otherFileList = array_values($tmpList);
 }
コード例 #2
0
 public function admin_file_upload()
 {
     clearViewCache();
     $hasError = false;
     if (!$_FILES) {
         $hasError = 'ファイルがアップロードされていません';
     }
     foreach ($_FILES as $name => $fileData) {
         if (!$name) {
             $hasError = 'アップロードに失敗しました';
         } else {
             if ($fileData["error"] == UPLOAD_ERR_INI_SIZE) {
                 $hasError = 'ファイル容量が大きすぎます';
             }
             // ファイル名チェック
             if (!$this->checkFileName($fileData["name"])) {
                 $hasError = "ファイル名は半角英数記号でアップロードしてください";
             }
             if ($fileData["error"] == UPLOAD_ERR_PARTIAL) {
                 $hasError = "ファイルが正しくアップロードされませんでした";
             }
         }
         if ($hasError) {
             break;
         }
     }
     // 何かしらエラー
     if ($hasError) {
         $result = array('error' => $hasError, 'data' => $hasError);
     } else {
         // 保存
         $uploaddir = BurgerEditorHelper::$otherFileBaseDir;
         foreach ($_FILES as $name => $fileData) {
             $filename = $fileData["name"];
             // 重複チェック
             if (file_exists($uploaddir . $filename)) {
                 $fileNum = 1;
                 while (1) {
                     $renameFile = $this->getFileNameNoExtension($filename) . '_' . $fileNum . '.' . $this->getExtension($filename);
                     if (!file_exists($uploaddir . $renameFile)) {
                         break;
                     }
                     $fileNum++;
                 }
                 $filename = $renameFile;
             }
             move_uploaded_file($fileData["tmp_name"], $uploaddir . $filename);
         }
         // ファイル読み直し
         BurgerEditorHelper::setSelfValue();
         $fileList = array();
         foreach (BurgerEditorHelper::$otherFileList as $filePath) {
             $fileList[] = array('name' => $this->mb_basename($filePath), 'url' => h(BurgerEditorHelper::$otherFileBaseURL . $this->mb_basename($filePath)));
         }
         $result = array('error' => $hasError, 'data' => $fileList);
     }
     Configure::write('debug', 0);
     $this->RequestHandler->setContent('json');
     $this->RequestHandler->respondAs('application/json; charset=UTF-8');
     echo json_encode($result);
     exit;
 }