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

source: OpenPNE/branches/2.8.x/webapp/lib/db/image.php @ 2920

Last change on this file since 2920 was 2920, checked in by ogawa, 13 years ago

#768:画像を別DBにするとアップロード画像リストに表示されない

File size: 3.5 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
7function db_image_c_image4c_image_id($c_image_id)
8{
9    $db =& db_get_instance('image');
10
11    $sql = 'SELECT * FROM c_image WHERE c_image_id = ?';
12    $params = array(intval($c_image_id));
13    return $db->get_row($sql, $params);
14}
15
16function db_image_is_c_image4filename($filename)
17{
18    if (!$filename) return false;
19
20    $db =& db_get_instance('image');
21
22    $sql = 'SELECT c_image_id FROM c_image WHERE filename = ?';
23    $params = array($filename);
24    return (bool)$db->get_one($sql, $params);
25}
26
27function db_image_c_image_list($page, $page_size, &$pager)
28{
29    $db =& db_get_instance('image');
30
31    $sql = 'SELECT c_image_id FROM c_image ORDER BY c_image_id DESC';
32    $id_list = $db->get_col_page($sql, $page, $page_size);
33
34    $c_image_list = array();
35    foreach ($id_list as $c_image_id) {
36        $sql = 'SELECT c_image_id, filename, r_datetime FROM c_image WHERE c_image_id = ?';
37        $params = array(intval($c_image_id));
38        $c_image_list[] = $db->get_row($sql, $params);
39    }
40
41    $sql = 'SELECT COUNT(*) FROM c_image';
42    $total_num = $db->get_one($sql);
43
44    $pager = admin_make_pager($page, $page_size, $total_num);
45    return $c_image_list;
46}
47
48/**
49 * ファイル名から一時保存ファイルを取得
50 */
51function db_image_c_tmp_image4filename($filename)
52{
53    $sql = 'SELECT * FROM c_tmp_image WHERE filename = ?';
54    $params = array($filename);
55    return db_get_row($sql, $params);
56}
57
58/*** write ***/
59
60function db_image_insert_c_image($filename, $bin, $type = '')
61{
62    $db =& db_get_instance('image');
63
64    $data = array(
65        'filename'   => $filename,
66        'bin'        => base64_encode($bin),
67        'type'       => $type,
68        'r_datetime' => db_now(),
69    );
70    return $db->insert('c_image', $data, 'c_image_id');
71}
72
73function db_image_delete_c_image($filename)
74{
75    $db =& db_get_instance('image');
76
77    $sql = 'DELETE FROM c_image WHERE filename = ?';
78    $params = array($filename);
79    return $db->query($sql, $params);
80}
81
82//---
83
84function db_image_insert_c_image2($filename, $filepath)
85{
86    if (!is_readable($filepath)) return false;
87
88    $fp = fopen($filepath, 'rb');
89    $image_data = fread($fp, filesize($filepath));
90    fclose($fp);
91
92    // 画像かどうかのチェック
93    if (!@imagecreatefromstring($image_data)) return false;
94
95    //TODO:typeフィールドを使う
96    return db_image_insert_c_image($filename, $image_data);
97}
98
99function db_image_data_delete($image_filename)
100{
101    if (!$image_filename) return false;
102
103    db_image_delete_c_image($image_filename);
104
105    // cacheの削除
106    image_cache_delete($image_filename);
107}
108
109//---
110
111function db_image_insert_c_tmp_image($filename, $filepath)
112{
113    if (!is_readable($filepath)) {
114        return false;
115    }
116
117    $fp = fopen($filepath, 'rb');
118    $image_data = fread($fp, filesize($filepath));
119    fclose($fp);
120
121    // 画像かどうかのチェック
122    if (!@imagecreatefromstring($image_data)) {
123        return false;
124    }
125
126    $sql = 'DELETE FROM c_tmp_image WHERE filename = ?';
127    $params = array($filename);
128    db_query($sql, $params);
129
130    $image_data = base64_encode($image_data);
131    $params = array(
132        'filename' => $filename,
133        'bin' => $image_data,
134        'r_datetime' => db_now(),
135    );
136
137    return db_insert('c_tmp_image', $params);
138}
139
140function db_image_clear_tmp_db($uid)
141{
142    $sql = 'DELETE FROM c_tmp_image WHERE filename LIKE ?';
143    $params = array('%_' . $uid . '.%');
144    db_query($sql, $params);
145}
146
147?>
Note: See TracBrowser for help on using the repository browser.