1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
* FileUploadUtil
* ファイルアップロードの処理、そこで得られる配列のデータ化
* $Id: FileUploadUtil.inc,v 1.1 2015/10/08 11:18:56 wanggb Exp $
* @author iimuro
* @access public
* @package jp.aimslib2.io
*/
class FileUploadUtil {
/**
* 指定された名前のリクエストに対するUploadFileを作成します。
* @param $name リクエスト中の名前。
* @return mixed 一つ、又は配列のUploadFile
*/
public static function getFileRequest($name) {
$data = $_FILES[$name];
return FileUploadUtil::getFile($data);
}
/**
* 指定された名前のリクエストに対するUploadFileを作成します。
* @param $data $_FILESに含まれるデータ要素
* @return mixed 一つ、又は配列のUploadFile
*/
public static function getFile($data) {
if (is_array($data["name"])) {
// 配列型のデータの場合
return getScalarFile($data);
} else {
// 単体のデータの場合
return getArrayFile($data);
}
}
/**
* 単体のデータである場合のFileUpload処理を行います。
* @param $data $_FILESに含まれるデータ要素
*/
public static function getScalarFile($data) {
$file = new UploadFile();
$file->name = $data["name"];
$file->type = $data["type"];
$file->size = $data["size"];
$file->tmp_name = $data["tmp_name"];
$file->error = $data["error"];
return $file;
}
/**
* 配列のデータである場合のFileUpload処理を行います。
* @param $data $_FILESに含まれるデータ要素
*/
public static function getArrayFile($data) {
$result = array();
for($x = 0; $x < count($data["name"]); $x++) {
$tmp = new UploadFile();
$tmp->name = $data["name"][$x];
$tmp->type = $data["type"][$x];
$tmp->size = $data["size"][$x];
$tmp->tmp_name = $data["tmp_name"][$x];
$tmp->error = $data["error"][$x];
array_push($result, $tmp);
}
return $result;
}
}
?>