/
upper_min.php
101 lines (83 loc) · 3.09 KB
/
upper_min.php
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upper</title>
</head>
<body>
<?php
//アップロードされた画像を捕捉する。
capture_uploaded_image();
?>
<div class=uploadform>
<form action="<?php echo basename($_SERVER['PHP_SELF']);?>?upload=true" method="post" enctype="multipart/form-data">
<h2>画像ファイルをアップロード:</h2><br>
<input type="file" name="upfile" size="30" /><br>
<input type="submit" value="アップロード" />
</form>
</div>
<?php
//以下はPHPモジュール
//ファイルアップロードを捕捉して、画像ファイルを保存する。
function capture_uploaded_image(){
$up_dir = "uploads/"; //画像ファイルを保存するディレクトリ
//アップロードの検出
if (!isset($_GET["upload"])){
//アップロードフラグが立っていない=通常のページロード
return true;
}
//アップロードエラーのチェック
if (UPLOAD_ERR_OK != $_FILES['upfile']['error']){
//アップロードエラーのエラーコード一覧
// http://php.net/manual/ja/features.file-upload.errors.php
print ( "アップロードエラー:(" .$_FILES['upfile']['error'] .")<br>\n");
return false;
}
//アップロードファイルの存在チェック
if (! is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
//ファイルが選択されていない状態でアップロードボタンをクリックした場合
print ( "アップロードエラー:ファイルが選択されていません。<br>\n");
return false;
}
//ファイルが画像か否かを判定
if (false == $ext = is_img($_FILES["upfile"]["tmp_name"])){
print ( "アップロードエラー:対応する形式の画像ファイルではありませんでした<br>\n");
return false;
}
//保存先ディレクトリのチェック
if (!is_dir($up_dir)){
print ("アップロードエラー:保存先ディレクトリが存在しませんでした<br>\n");
return false;
}
if(!is_writable($up_dir)){
print ("アップロードエラー:保存先ディレクトリに書き込む権限がありませんでした<br>\n");
return false;
}
//画像ファイルを保存(注意:同名ファイルがあると上書きされる)
$filepath = $up_dir . $_FILES["upfile"]["name"];
if (move_uploaded_file($_FILES["upfile"]["tmp_name"], $filepath)) {
chmod($filepath, 0644);
print ( "ファイル\"". $_FILES["upfile"]["name"] . "\"をアップロードしました。<br><br>\n");
return true;
} else {
print ( "アップロードエラー:ファイルのアップロードに失敗しました<br>\n");
return false;
}
}
//画像ファイルか否かを判定する
function is_img($img_path=""){
if (!(file_exists($img_path) and $type=exif_imagetype($img_path))){
return false;
}
if (IMAGETYPE_GIF == $type){
return 'gif';
}else if (IMAGETYPE_JPEG == $type){
return 'jpg';
}else if (IMAGETYPE_PNG == $type){
return 'png';
}else{
return false;
}
}
?>
</body>
</html>