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

source: OpenPNE/branches/ebihara/prj_dev28_fileupload/webapp/lib/util/upload.php @ 2101

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

文字コードがShift-JISになっていたのを修正

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id Date Author Rev URL
File size: 2.7 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 * 確認画面用に一時ファイルを保存して、そのファイル名を返す
9 *
10 * 保存先:     var/tmp/
11 * ファイル名: ($prefix)_($uid).[(jpe?g)|(gif)|(png)]
12 */
13function t_file_save2tmp($upfile, $uid, $prefix='', $ext='')
14{
15error_log("t_file_save2tmp");
16    //拡張子チェック
17//    if (!$ext) $ext = t_check_image_format($upfile);
18
19    // 一時ファイル保存ディレクトリ
20    $tmp_dir_path = OPENPNE_VAR_DIR . '/tmp/';
21
22    $filename = sprintf('%s_%s.%s', $prefix, $uid, $ext);
23    $filepath = $tmp_dir_path . $filename;
24
25    if (!file_exists($upfile['tmp_name'])) {
26error_log("file not exists");
27        return false;
28    }
29
30    move_uploaded_file($upfile['tmp_name'], $filepath);
31    chmod($filepath, 0644);
32    if (!is_file($filepath)) {
33error_log("is not file");
34        return false;
35    }
36
37    return $filename;
38}
39
40
41function file_insert_c_file4tmp($prefix, $tmpfile)
42{
43error_log("file_insert_c_file4tmp");
44    if (!$tmpfile || preg_match('/[^\.\w]/', $tmpfile)) return false;
45
46    $path_parts = pathinfo($tmpfile);
47    $ext = $path_parts['extension'];
48    $ext = strtolower($ext);
49//    ホワイトリストから拡張子をチェック
50/*
51    $allowed_ext = array('jpg', 'jpeg', 'gif', 'png');
52    if (!in_array($ext, $allowed_ext)) {
53        return false;
54    }
55*/
56
57    $filename = sprintf('%s_%s.%s', $prefix, time(), $ext);
58
59    $tmp_dir_path = OPENPNE_VAR_DIR . '/tmp/';
60    $filepath = $tmp_dir_path . basename($tmpfile);
61
62error_log("filepath ". $filepath);
63error_log("filename ". $filename);
64
65    if (db_file_insert_c_file_pre($filename, $filepath)) {
66        return $filename;
67    }
68    return false;
69}
70function db_file_insert_c_file_pre($filename, $filepath)
71{
72error_log("db_file_insert_c_file_pre ".$filepath." / ".$filename);
73    if (!is_readable($filepath)) {
74error_log("can't read");
75        return false;
76    }
77
78    $fp = fopen($filepath, 'rb');
79    $file_Data = fread($fp, filesize($filepath));
80    fclose($fp);
81
82    return db_file_insert_c_file($filename, $file_Data);
83}
84
85function db_file_insert_c_file($filename, $bin, $type = '')
86{
87error_log("db_file_insert_c_file");
88    $db =& db_get_instance();
89
90    $data = array(
91        'filename'   => $filename,
92        'bin'        => $bin,
93        'type'       => $type,
94        'r_datetime' => db_now(),
95    );
96error_log("OK2");
97    return $db->insert('c_file', $data, 'c_file_id');
98}
99/**
100 * ファイル名からファイル実体を取得
101 */
102function db_file_c_file4filename($filename)
103{
104    $sql = 'SELECT * FROM c_file WHERE filename = ?';
105    $params = array($filename);
106    return db_get_row($sql, $params);
107}
108
109
110?>
Note: See TracBrowser for help on using the repository browser.