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); }
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; }