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

source: OpenPNE/trunk/webapp/lib/util/upload.php @ 2188

Last change on this file since 2188 was 2188, checked in by takanashi, 13 years ago

#223 ファイルアップロード

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id Date Author Rev URL
File size: 2.0 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).($ext)
12 *
13 * @param array $upfile
14 * @param string $uid
15 * @param string $prefix
16 * @param string $ext
17 * @return mixed
18 */
19function t_file_save2tmp($upfile, $uid, $prefix='', $ext='')
20{
21    // 拡張子を取得
22    if (!$ext) {
23        $path_parts = pathinfo($upfile['name']);
24        $ext = $path_parts['extension'];
25        $ext = strtolower($ext);
26    }
27
28    // 一時ファイル保存ディレクトリ
29    $tmp_dir_path = OPENPNE_VAR_DIR . '/tmp/';
30
31    // ファイルパスを決定
32    $filename = sprintf('%s_%s.%s', $prefix, $uid, $ext);
33    $filepath = $tmp_dir_path . $filename;
34
35    if (!file_exists($upfile['tmp_name'])) {
36        return false;
37    }
38
39    // var/tmp/ディレクトリにファイルを移動する
40    move_uploaded_file($upfile['tmp_name'], $filepath);
41    chmod($filepath, 0644);
42    if (!is_file($filepath)) {
43        return false;
44    }
45
46    return $filename;
47}
48
49/**
50 * 一時ファイル情報をDBに保存する
51 *
52 * @param string $prefix
53 * @param string $tmpfile
54 * @param string $type
55 * @return mixed
56 */
57function file_insert_c_file4tmp($prefix, $tmpfile, $type)
58{
59    if (!$tmpfile || preg_match('/[^\.\w]/', $tmpfile)) return false;
60
61    $path_parts = pathinfo($tmpfile);
62    $ext = $path_parts['extension'];
63    $ext = strtolower($ext);
64
65    $filename = sprintf('%s_%s.%s', $prefix, time(), $ext);
66
67    $tmp_dir_path = OPENPNE_VAR_DIR . '/tmp/';
68    $filepath = $tmp_dir_path . basename($tmpfile);
69
70    if (!is_readable($filepath)) {
71        return false;
72    }
73
74    $fp = fopen($filepath, 'rb');
75    $fileData = fread($fp, filesize($filepath));
76    fclose($fp);
77
78    if (db_file_insert_c_file($filename, $fileData, $type)) {
79        return $filename;
80    }
81
82    return false;
83}
84
85?>
Note: See TracBrowser for help on using the repository browser.