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

source: OpenPNE/branches/prj/postgres/2_8_1/webapp/lib/db/file.php @ 3402

Last change on this file since 3402 was 3402, checked in by ToshihiroK, 14 years ago

postgres対応

File size: 3.9 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
7/**
8 * IDからファイルの情報を取得する
9 *
10 * @param int $c_file_id
11 */
12function db_file_c_file4c_file_id($c_file_id)
13{
14    $sql = 'SELECT * FROM c_file WHERE c_file_id = ?';
15    $params = array(intval($c_file_id));
16    $file = db_get_row($sql, $params);
17    $file['size'] = strlen($file['bin']);
18    return $file;
19}
20
21/**
22 * 登録されているファイルをリストアップする
23 *
24 * @param int $page
25 * @param int $page_size
26 * @param int &$pager
27 */
28function db_file_c_file_list($page, $page_size, &$pager)
29{
30    $sql = 'SELECT c_file_id FROM c_file ORDER BY c_file_id DESC';
31    $id_list = db_get_col_page($sql, $page, $page_size);
32
33    $c_file_list = array();
34    foreach ($id_list as $i => $c_file_id) {
35        $sql = 'SELECT c_file_id, filename, original_filename, r_datetime, bin FROM c_file WHERE c_file_id = ?';
36        $params = array(intval($c_file_id));
37        $c_file_list[$i] = db_get_row($sql, $params);
38        $c_file_list[$i]['size'] = strlen($c_file_list[$i]['bin']);
39    }
40
41    $sql = 'SELECT COUNT(*) FROM c_file';
42    $total_num = db_get_one($sql);
43
44    $pager = admin_make_pager($page, $page_size, $total_num);
45
46    return $c_file_list;
47}
48
49/**
50 * ファイル情報をDBに挿入する
51 *
52 * @param string $filename
53 * @param string $bin
54 * @param string $original_filename
55 * @return mixed
56 */
57function db_file_insert_c_file($filename, $bin, $original_filename)
58{
59    $data = array(
60        'filename'   => $filename,
61        'bin'        => base64_encode($bin),
62        'original_filename' => $original_filename,
63        'r_datetime' => db_now(),
64    );
65    return db_insert('c_file', $data, 'c_file_id');
66}
67
68/**
69 * ファイル名からファイル実体を取得
70 *
71 * @param string $filename
72 * @return mixed
73 */
74function db_file_c_file4filename($filename)
75{
76    $sql = 'SELECT * FROM c_file WHERE filename = ?';
77    $params = array($filename);
78    $lst = db_get_row($sql, $params);
79    $lst['bin'] = base64_decode($lst['bin']);
80    return $lst;
81}
82
83/**
84 * ファイル名からオリジナルのファイル名を取得
85 *
86 * @param string $filename
87 * @return string
88 */
89function db_file_original_filename4filename($filename)
90{
91    $sql = 'SELECT original_filename FROM c_file WHERE filename = ?';
92    $params = array($filename);
93    return db_get_one($sql, $params);
94}
95
96/**
97 * アップロードされたファイルを削除する
98 *
99 * @param string $filename  削除したいファイル名
100 * @return mixed
101 */
102function db_file_delete_c_file($filename)
103{
104    $sql = 'DELETE FROM c_file WHERE filename = ?';
105    $params = array($filename);
106    return db_query($sql, $params);
107}
108
109/**
110 * 管理画面用に一時ファイル情報をDBに挿入する
111 *
112 * @param string $filename
113 * @param string $filepath
114 * @param string $original_filename
115 */
116function db_file_insert_c_tmp_file($filename, $filepath, $original_filename)
117{
118    if (!is_readable($filepath)) {
119        return false;
120    }
121
122    $fp = fopen($filepath, 'rb');
123    $file_data = fread($fp, filesize($filepath));
124    fclose($fp);
125
126    $sql = 'DELETE FROM c_tmp_file WHERE filename = ?';
127    $params = array($filename);
128    db_query($sql, $params);
129
130    $data = array(
131        'filename'   => $filename,
132        'bin'        => $file_data,
133        'original_filename' => $original_filename,
134        'r_datetime' => db_now(),
135    );
136    return db_insert('c_tmp_file', $data);
137}
138
139/**
140 * DBから管理画面用の一時ファイル情報を削除する
141 */
142function db_file_clear_tmp_db($uid)
143{
144    $sql = 'DELETE FROM c_tmp_file WHERE filename LIKE ?';
145    $params = array('%_' . $uid . '.%');
146    db_query($sql, $params);
147}
148
149/**
150 * ファイル名から一時保存ファイルを取得
151 */
152function db_file_c_tmp_file4filename($filename)
153{
154    $sql = 'SELECT * FROM c_tmp_file WHERE filename = ?';
155    $params = array($filename);
156    return db_get_row($sql, $params);
157}
158?>
Note: See TracBrowser for help on using the repository browser.