ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/ebihara/prj_dev28_fileupload/webapp/modules/pc/page/c_topic_add_confirm.php @ 2107

Last change on this file since 2107 was 2107, checked in by ebihara, 14 years ago

#223 アップロードしたファイルをダウンロードできるようにした

File size: 4.2 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7class pc_page_c_topic_add_confirm extends OpenPNE_Action
8{
9    function handleError($errors)
10    {
11        $_REQUEST['err_msg'] = $errors;
12        openpne_forward('pc', 'page', 'c_topic_add', $errors);
13        exit;
14    }
15
16    function execute($requests)
17    {
18        $u = $GLOBALS['AUTH']->uid();
19
20        // --- リクエスト変数
21        $c_commu_id = $requests['target_c_commu_id'];
22        $title = $requests['title'];
23        $body = $requests['body'];
24        // ----------
25
26        //--- 権限チェック
27        if (!db_commu_is_c_commu_view4c_commu_idAc_member_id($c_commu_id, $u)) {
28            handle_kengen_error();
29        }
30
31        $c_commu = db_commu_c_commu4c_commu_id2($c_commu_id);
32
33        //トピック作成権限チェック
34        if ($c_commu['topic_authority'] == 'admin_only' && !db_commu_is_c_commu_admin($c_commu_id, $u)) {
35            $_REQUEST['target_c_commu_id'] = $c_commu_id;
36            $_REQUEST['msg'] = "トピックは管理者だけが作成できます";
37            openpne_forward('pc', 'page', "c_home");
38            exit;
39        }
40
41        //画像ファイル
42        $upfile_obj1 = $_FILES['image_filename1'];
43        $upfile_obj2 = $_FILES['image_filename2'];
44        $upfile_obj3 = $_FILES['image_filename3'];
45
46        //添付ファイル
47        $upfile_obj4 = $_FILES['uploadfile'];
48
49        $err_msg = array();
50
51        if ($upfile_obj1['error'] !== UPLOAD_ERR_NO_FILE) {
52            if (!($image = t_check_image($upfile_obj1))) {
53                $err_msg[] = '画像1は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
54            }
55        }
56        if ($upfile_obj2['error'] !== UPLOAD_ERR_NO_FILE) {
57            if (!($image = t_check_image($upfile_obj2))) {
58                $err_msg[] = '画像2は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
59            }
60        }
61        if ($upfile_obj3['error'] !== UPLOAD_ERR_NO_FILE) {
62            if (!($image = t_check_image($upfile_obj3))) {
63                $err_msg[] = '画像3は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
64            }
65        }
66
67        if ($upfile_obj4['error'] !== UPLOAD_ERR_NO_FILE) {
68            // UPLOADファイルの拡張子のチェック
69/*
70            if (!($image = t_check_filename($upfile_obj3))) {
71                $err_msg[] = 'アップロードするファイルの拡張子が不正です';
72            }
73*/
74        }
75
76        if ($err_msg) {
77            $_REQUEST['err_msg'] = $err_msg;
78            openpne_forward('pc', 'page', "c_topic_add");
79            exit;
80        }
81        $sessid = session_id();
82       
83        //-----
84
85        //画像をvar/tmpフォルダにコピー
86        t_image_clear_tmp($sessid);
87        $tmpfile1 = t_image_save2tmp($upfile_obj1, $sessid, "t_1");
88        $tmpfile2 = t_image_save2tmp($upfile_obj2, $sessid, "t_2");
89        $tmpfile3 = t_image_save2tmp($upfile_obj3, $sessid, "t_3");
90        // 一次ファイルをvar/tmpにコピー
91        $tmpfile4 = t_file_save2tmp($upfile_obj4, $sessid, "t_4");
92
93        $this->set('inc_navi', fetch_inc_navi("c", $c_commu_id));
94        $c_topic = array(
95            'c_commu_id' => $c_commu_id,
96            'title'      => $title,
97            'body'       => $body,
98            'image_filename1_tmpfile' => $tmpfile1,
99            'image_filename2_tmpfile' => $tmpfile2,
100            'image_filename3_tmpfile' => $tmpfile3,
101            'image_filename1'         => $upfile_obj1["name"],
102            'image_filename2'         => $upfile_obj2["name"],
103            'image_filename3'         => $upfile_obj3["name"],
104             // 添付ファイル
105            'filename4_tmpfile' => $tmpfile4,
106            'filename4'         => $upfile_obj4["name"],
107            // TODO : ここでMIMEタイプをhiddenで持たせないようにする
108            // TODO : このMIMEタイプの値は信用できないので別の手段でMIMEタイプを得る手段を模索する
109            'filename4_mime_type' => $upfile_obj4['type'],
110        );
111
112        $this->set('c_topic', $c_topic);
113        return 'success';
114    }
115}
116
117?>
Note: See TracBrowser for help on using the repository browser.