source: branches/feature-module-update/html/admin/contents/file_manager.php @ 15532

Revision 15532, 5.8 KB checked in by nanasess, 17 years ago (diff)

svn:mime-type 修正

  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8require_once(DATA_PATH . "include/file_manager.inc");
9
10//---- 認証可否の判定
11$objSess = new SC_Session();
12sfIsSuccess($objSess);
13
14class LC_Page{
15    function LC_Page() {
16        $this->tpl_mainpage = 'contents/file_manager.tpl';
17        $this->tpl_mainno = 'contents';
18        $this->tpl_subnavi = 'contents/subnavi.tpl';
19        $this->tpl_subno = "file";
20        $this->tpl_subtitle = 'ファイル管理';     
21    }
22}
23
24// ルートディレクトリ
25$top_dir = USER_PATH;
26
27$objPage = new LC_Page();
28$objView = new SC_AdminView();
29$objQuery = new SC_Query();
30
31// 現在の階層を取得
32if($_POST['mode'] != "") {
33    $now_dir = $_POST['now_file'];
34} else {
35    // 初期表示はルートディレクトリ(user_data/)を表示
36    $now_dir = $top_dir;
37}
38
39// ファイル管理クラス
40$objUpFile = new SC_UploadFile($now_dir, $now_dir);
41// ファイル情報の初期化
42lfInitFile();
43
44switch($_POST['mode']) {
45
46// ファイル表示
47case 'view':
48    // エラーチェック
49    $arrErr = lfErrorCheck();
50    if(!is_array($arrErr)) {
51   
52        // 選択されたファイルがディレクトリなら移動
53        if(is_dir($_POST['select_file'])) {
54            ///$now_dir = $_POST['select_file'];
55            // ツリー遷移用のjavascriptを埋め込む
56            $arrErr['select_file'] = "※ ディレクトリを表示することは出来ません。<br/>";
57           
58        } else {
59            // javascriptで別窓表示(テンプレート側に渡す)
60            $file_url = ereg_replace(USER_PATH, "", $_POST['select_file']);
61            $tpl_onload = "win02('./file_view.php?file=". $file_url ."', 'user_data', '600', '400');";
62        }
63    }
64    break;
65// ファイルダウンロード
66case 'download':
67
68    // エラーチェック
69    $arrErr = lfErrorCheck();
70    if(!is_array($arrErr)) {
71        if(is_dir($_POST['select_file'])) {
72            // ディレクトリの場合はjavascriptエラー
73            $arrErr['select_file'] = "※ ディレクトリをダウンロードすることは出来ません。<br/>";
74        } else {
75            // ファイルダウンロード
76            sfDownloadFile($_POST['select_file']);
77            exit;           
78        }
79    }
80    break;
81// ファイル削除
82case 'delete':
83    // エラーチェック
84    $arrErr = lfErrorCheck();
85    if(!is_array($arrErr)) {
86        sfDeleteDir($_POST['select_file']);
87    }
88    break;
89// ファイル作成
90case 'create':
91    // エラーチェック
92    $arrErr = lfCreateErrorCheck();
93    if(!is_array($arrErr)) {
94        $create_dir = ereg_replace("/$", "", $now_dir);
95        // ファイル作成
96        if(!sfCreateFile($create_dir."/".$_POST['create_file'], 0755)) {
97            // 作成エラー
98            $arrErr['create_file'] = "※ ".$_POST['create_file']."の作成に失敗しました。<br/>";
99        } else {
100            $tpl_onload .= "alert('フォルダを作成しました。');";
101        }
102    }
103    break;
104// ファイルアップロード
105case 'upload':
106    // 画像保存処理
107    $ret = $objUpFile->makeTempFile('upload_file', false);
108    if($ret != "") {
109        $arrErr['upload_file'] = $ret;
110    } else {
111        $tpl_onload .= "alert('ファイルをアップロードしました。');";
112    }
113    break;
114// フォルダ移動
115case 'move':
116    $now_dir = $_POST['tree_select_file'];
117    break;
118// 初期表示
119default :
120    break;
121}
122// トップディレクトリか調査
123$is_top_dir = false;
124// 末尾の/をとる
125$top_dir_check = ereg_replace("/$", "", $top_dir);
126$now_dir_check = ereg_replace("/$", "", $now_dir);
127if($top_dir_check == $now_dir_check) $is_top_dir = true;
128
129// 現在の階層より一つ上の階層を取得
130$parent_dir = lfGetParentDir($now_dir);
131
132// 現在のディレクトリ配下のファイル一覧を取得
133$objPage->arrFileList = sfGetFileList($now_dir);
134$objPage->tpl_is_top_dir = $is_top_dir;
135$objPage->tpl_parent_dir = $parent_dir;
136$objPage->tpl_now_dir = $now_dir;
137$objPage->tpl_now_file = basename($now_dir);
138$objPage->arrErr = $arrErr;
139$objPage->arrParam = $_POST;
140
141// ツリーを表示する divタグid, ツリー配列変数名, 現在ディレクトリ, 選択ツリーhidden名, ツリー状態hidden名, mode hidden名
142$objPage->tpl_onload .= "fnTreeView('tree', arrTree, '$now_dir', 'tree_select_file', 'tree_status', 'move');$tpl_onload";
143// ツリー配列作成用 javascript
144$arrTree = sfGetFileTree($top_dir, $_POST['tree_status']);
145$objPage->tpl_javascript .= "arrTree = new Array();\n";
146foreach($arrTree as $arrVal) {
147    $objPage->tpl_javascript .= "arrTree[".$arrVal['count']."] = new Array(".$arrVal['count'].", '".$arrVal['type']."', '".$arrVal['path']."', ".$arrVal['rank'].",";
148    if ($arrVal['open']) {
149        $objPage->tpl_javascript .= "true);\n";
150    } else {
151        $objPage->tpl_javascript .= "false);\n";
152    }
153}
154
155// 画面の表示
156$objView->assignobj($objPage);
157$objView->display(MAIN_FRAME);
158
159//-----------------------------------------------------------------------------------------------------------------------------------
160
161/*
162 * 関数名:lfErrorCheck()
163 * 説明 :エラーチェック
164 */
165function lfErrorCheck() {
166    $objErr = new SC_CheckError($_POST);
167    $objErr->doFunc(array("ファイル", "select_file"), array("SELECT_CHECK"));
168   
169    return $objErr->arrErr;
170}
171
172/*
173 * 関数名:lfCreateErrorCheck()
174 * 説明 :ファイル作成処理エラーチェック
175 */
176function lfCreateErrorCheck() {
177    $objErr = new SC_CheckError($_POST);
178    $objErr->doFunc(array("作成ファイル名", "create_file"), array("EXIST_CHECK", "FILE_NAME_CHECK_BY_NOUPLOAD"));
179   
180    return $objErr->arrErr;
181}
182
183/*
184 * 関数名:lfInitFile()
185 * 説明 :ファイル情報の初期化
186 */
187function lfInitFile() {
188    global $objUpFile;
189    $objUpFile->addFile("ファイル", 'upload_file', array(), FILE_SIZE, true, 0, 0, false);
190}
191
192/*
193 * 関数名:lfGetParentDir()
194 * 引数1 :ディレクトリ
195 * 説明 :親ディレクトリ取得
196 */
197function lfGetParentDir($dir) {
198    $dir = ereg_replace("/$", "", $dir);
199    $arrDir = split('/', $dir);
200    array_pop($arrDir);
201    foreach($arrDir as $val) {
202        $parent_dir .= "$val/";
203    }
204    $parent_dir = ereg_replace("/$", "", $parent_dir);
205   
206    return $parent_dir;
207}
208?>
Note: See TracBrowser for help on using the repository browser.