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

source: OpenPNE/trunk/webapp/modules/pc/do/h_message_file_download.php @ 6536

Last change on this file since 6536 was 6536, checked in by ebihara, 12 years ago

#2182:メッセージにファイルをアップロードできるようにした

File size: 1.7 KB
Line 
1<?php
2/**
3 * @copyright 2005-2008 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7class pc_do_h_message_file_download extends OpenPNE_Action
8{
9    function isSecure()
10    {
11        // SSL有効時にIEでファイルダウンロードできなくなる問題の対策
12        session_cache_limiter('public');
13
14        return true;
15    }
16
17    function execute($requests)
18    {
19        $u = $GLOBALS['AUTH']->uid();
20
21        $target_c_message_id = $requests['target_c_message_id'];
22        $c_message = db_message_c_message4c_message_id2($target_c_message_id, $u);
23
24        // 権限チェック
25        if (!util_is_readable_message($u, $target_c_message_id)) {
26            handle_kengen_error();
27        }
28
29        // ファイルアップロード機能がオフ
30        if (!OPENPNE_USE_FILEUPLOAD) {
31            handle_kengen_error();
32        }
33
34        // ファイルが存在しない
35        $file = db_file_c_file4filename($c_message['filename']);
36        if (empty($file)) {
37            handle_kengen_error();
38        }
39
40        // オリジナルファイル名
41        $original_filename = $file['original_filename'];
42        if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
43            // IE の場合のみ、ファイル名を SJIS に変換
44            $original_filename = mb_convert_encoding($original_filename, 'SJIS', 'UTF-8');
45        }
46        $original_filename = str_replace(array("\r", "\n"), '', $original_filename);
47
48        header('Content-Disposition: attachment; filename="' . $original_filename . '"');
49        header('Content-Length: '. strlen($file['bin']));
50        header('Content-Type: application/octet-stream');
51        echo $file['bin'];
52        exit;
53    }
54}
55
56?>
Note: See TracBrowser for help on using the repository browser.