質問するログイン新規登録

質問編集履歴

4

追記

2016/12/20 08:12

投稿

ryo-dev
ryo-dev

スコア437

title CHANGED
File without changes
body CHANGED
@@ -119,4 +119,178 @@
119
119
  Notice: Undefined index: upfile[$loop] in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 15
120
120
 
121
121
  Warning: Illegal offset type in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 29
122
+ ```
123
+
124
+ 追記2
125
+ ```html
126
+ array(1) {
127
+ ["upfile"]=>
128
+ array(5) {
129
+ ["name"]=>
130
+ array(2) {
131
+ [0]=>
132
+ string(36) "bandicam 2016-11-12 18-50-46-457.jpg"
133
+ [1]=>
134
+ string(36) "bandicam 2016-11-12 22-25-08-417.jpg"
135
+ }
136
+ ["type"]=>
137
+ array(2) {
138
+ [0]=>
139
+ string(10) "image/jpeg"
140
+ [1]=>
141
+ string(10) "image/jpeg"
142
+ }
143
+ ["tmp_name"]=>
144
+ array(2) {
145
+ [0]=>
146
+ string(50) "C:\Users\hasegawaryo\AppData\Local\Temp\php72A.tmp"
147
+ [1]=>
148
+ string(50) "C:\Users\hasegawaryo\AppData\Local\Temp\php72B.tmp"
149
+ }
150
+ ["error"]=>
151
+ array(2) {
152
+ [0]=>
153
+ int(0)
154
+ [1]=>
155
+ int(0)
156
+ }
157
+ ["size"]=>
158
+ array(2) {
159
+ [0]=>
160
+ int(30272)
161
+ [1]=>
162
+ int(67484)
163
+ }
164
+ }
165
+ }
166
+ int(0)
167
+ array(7) {
168
+ [1]=>
169
+ string(62) "php.iniのupload_max_filesizeの制限を越えています。"
170
+ [2]=>
171
+ string(51) "HTMLのMAX_FILE_SIZE 制限を越えています。"
172
+ [3]=>
173
+ string(69) "ファイルが一部しかアップロードされていません。"
174
+ [4]=>
175
+ string(60) "ファイルはアップロードされませんでした。"
176
+ [6]=>
177
+ string(48) "一時保存フォルダが存在しません。"
178
+ [7]=>
179
+ string(54) "ディスクへの書き込みに失敗しました。"
180
+ [8]=>
181
+ string(78) "拡張モジュールによってアップロードが中断されました。"
182
+ }
183
+ array(5) {
184
+ ["name"]=>
185
+ array(2) {
186
+ [0]=>
187
+ string(36) "bandicam 2016-11-12 18-50-46-457.jpg"
188
+ [1]=>
189
+ string(36) "bandicam 2016-11-12 22-25-08-417.jpg"
190
+ }
191
+ ["type"]=>
192
+ array(2) {
193
+ [0]=>
194
+ string(10) "image/jpeg"
195
+ [1]=>
196
+ string(10) "image/jpeg"
197
+ }
198
+ ["tmp_name"]=>
199
+ array(2) {
200
+ [0]=>
201
+ string(50) "C:\Users\hasegawaryo\AppData\Local\Temp\php72A.tmp"
202
+ [1]=>
203
+ string(50) "C:\Users\hasegawaryo\AppData\Local\Temp\php72B.tmp"
204
+ }
205
+ ["error"]=>
206
+ array(2) {
207
+ [0]=>
208
+ int(0)
209
+ [1]=>
210
+ int(0)
211
+ }
212
+ ["size"]=>
213
+ array(2) {
214
+ [0]=>
215
+ int(30272)
216
+ [1]=>
217
+ int(67484)
218
+ }
219
+ }
220
+ array(2) {
221
+ [0]=>
222
+ int(0)
223
+ [1]=>
224
+ int(0)
225
+ }
226
+ int(0)
227
+
228
+ Notice: Undefined offset: 0 in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\�t�@�C���̃A�b�v���[�h\file2.php on line 39
229
+
230
+ Notice: Undefined offset: 0 in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\�t�@�C���̃A�b�v���[�h\file2.php on line 40
231
+ int(1)
232
+ array(7) {
233
+ [1]=>
234
+ string(62) "php.iniのupload_max_filesizeの制限を越えています。"
235
+ [2]=>
236
+ string(51) "HTMLのMAX_FILE_SIZE 制限を越えています。"
237
+ [3]=>
238
+ string(69) "ファイルが一部しかアップロードされていません。"
239
+ [4]=>
240
+ string(60) "ファイルはアップロードされませんでした。"
241
+ [6]=>
242
+ string(48) "一時保存フォルダが存在しません。"
243
+ [7]=>
244
+ string(54) "ディスクへの書き込みに失敗しました。"
245
+ [8]=>
246
+ string(78) "拡張モジュールによってアップロードが中断されました。"
247
+ }
248
+ array(5) {
249
+ ["name"]=>
250
+ array(2) {
251
+ [0]=>
252
+ string(36) "bandicam 2016-11-12 18-50-46-457.jpg"
253
+ [1]=>
254
+ string(36) "bandicam 2016-11-12 22-25-08-417.jpg"
255
+ }
256
+ ["type"]=>
257
+ array(2) {
258
+ [0]=>
259
+ string(10) "image/jpeg"
260
+ [1]=>
261
+ string(10) "image/jpeg"
262
+ }
263
+ ["tmp_name"]=>
264
+ array(2) {
265
+ [0]=>
266
+ string(50) "C:\Users\hasegawaryo\AppData\Local\Temp\php72A.tmp"
267
+ [1]=>
268
+ string(50) "C:\Users\hasegawaryo\AppData\Local\Temp\php72B.tmp"
269
+ }
270
+ ["error"]=>
271
+ array(2) {
272
+ [0]=>
273
+ int(0)
274
+ [1]=>
275
+ int(0)
276
+ }
277
+ ["size"]=>
278
+ array(2) {
279
+ [0]=>
280
+ int(30272)
281
+ [1]=>
282
+ int(67484)
283
+ }
284
+ }
285
+ array(2) {
286
+ [0]=>
287
+ int(0)
288
+ [1]=>
289
+ int(0)
290
+ }
291
+ int(0)
292
+
293
+ Notice: Undefined offset: 0 in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 39
294
+
295
+ Notice: Undefined offset: 0 in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 40
122
296
  ```

3

編集

2016/12/20 08:12

投稿

ryo-dev
ryo-dev

スコア437

title CHANGED
File without changes
body CHANGED
@@ -72,51 +72,51 @@
72
72
  エラーコードを追記します。
73
73
  ```html
74
74
  array(1) {
75
- ["upfile"]=>
75
+ ["upfile"]=>
76
- array(5) {
76
+ array(5) {
77
- ["name"]=>
77
+ ["name"]=>
78
- array(2) {
78
+ array(2) {
79
- [0]=>
79
+ [0]=>
80
- string(36) "bandicam 2016-11-12 18-50-46-457.jpg"
80
+ string(36) "bandicam 2016-11-12 18-50-46-457.jpg"
81
- [1]=>
81
+ [1]=>
82
- string(36) "bandicam 2016-11-12 22-25-08-417.jpg"
82
+ string(36) "bandicam 2016-11-12 22-25-08-417.jpg"
83
+ }
84
+ ["type"]=>
85
+ array(2) {
86
+ [0]=>
87
+ string(10) "image/jpeg"
88
+ [1]=>
89
+ string(10) "image/jpeg"
90
+ }
91
+ ["tmp_name"]=>
92
+ array(2) {
93
+ [0]=>
94
+ string(51) "C:\Users\hasegawaryo\AppData\Local\Temp\php76EE.tmp"
95
+ [1]=>
96
+ string(51) "C:\Users\hasegawaryo\AppData\Local\Temp\php76EF.tmp"
97
+ }
98
+ ["error"]=>
99
+ array(2) {
100
+ [0]=>
101
+ int(0)
102
+ [1]=>
103
+ int(0)
104
+ }
105
+ ["size"]=>
106
+ array(2) {
107
+ [0]=>
108
+ int(30272)
109
+ [1]=>
110
+ int(67484)
111
+ }
112
+ }
83
113
  }
84
- ["type"]=>
114
+
85
- array(2) {
86
- [0]=>
87
- string(10) "image/jpeg"
88
- [1]=>
89
- string(10) "image/jpeg"
90
- }
91
- ["tmp_name"]=>
92
- array(2) {
93
- [0]=>
94
- string(51) "C:\Users\hasegawaryo\AppData\Local\Temp\php6A51.tmp"
95
- [1]=>
96
- string(51) "C:\Users\hasegawaryo\AppData\Local\Temp\php6A52.tmp"
97
- }
98
- ["error"]=>
99
- array(2) {
100
- [0]=>
101
- int(0)
102
- [1]=>
103
- int(0)
104
- }
105
- ["size"]=>
106
- array(2) {
107
- [0]=>
108
- int(30272)
109
- [1]=>
110
- int(67484)
111
- }
112
- }
113
- }
114
- <br />
115
- <b>Notice</b>: Undefined index: upfile[$loop] in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>14</b><br />
115
+ Notice: Undefined index: upfile[$loop] in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 15
116
- <br />
116
+
117
- <b>Warning</b>: Illegal offset type in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>28</b><br />
117
+ Warning: Illegal offset type in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 29
118
- <br />
118
+
119
- <b>Notice</b>: Undefined index: upfile[$loop] in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>14</b><br />
119
+ Notice: Undefined index: upfile[$loop] in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 15
120
- <br />
120
+
121
- <b>Warning</b>: Illegal offset type in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>28</b><br />
121
+ Warning: Illegal offset type in C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php on line 29
122
122
  ```

2

追記

2016/12/20 06:18

投稿

ryo-dev
ryo-dev

スコア437

title CHANGED
File without changes
body CHANGED
@@ -66,4 +66,57 @@
66
66
  }
67
67
  // 処理成功時はフォームにリダイレクト
68
68
  header('Location: http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/file1.php');
69
+ ```
70
+
71
+ 追記
72
+ エラーコードを追記します。
73
+ ```html
74
+ array(1) {
75
+ ["upfile"]=>
76
+ array(5) {
77
+ ["name"]=>
78
+ array(2) {
79
+ [0]=>
80
+ string(36) "bandicam 2016-11-12 18-50-46-457.jpg"
81
+ [1]=>
82
+ string(36) "bandicam 2016-11-12 22-25-08-417.jpg"
83
+ }
84
+ ["type"]=>
85
+ array(2) {
86
+ [0]=>
87
+ string(10) "image/jpeg"
88
+ [1]=>
89
+ string(10) "image/jpeg"
90
+ }
91
+ ["tmp_name"]=>
92
+ array(2) {
93
+ [0]=>
94
+ string(51) "C:\Users\hasegawaryo\AppData\Local\Temp\php6A51.tmp"
95
+ [1]=>
96
+ string(51) "C:\Users\hasegawaryo\AppData\Local\Temp\php6A52.tmp"
97
+ }
98
+ ["error"]=>
99
+ array(2) {
100
+ [0]=>
101
+ int(0)
102
+ [1]=>
103
+ int(0)
104
+ }
105
+ ["size"]=>
106
+ array(2) {
107
+ [0]=>
108
+ int(30272)
109
+ [1]=>
110
+ int(67484)
111
+ }
112
+ }
113
+ }
114
+ <br />
115
+ <b>Notice</b>: Undefined index: upfile[$loop] in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>14</b><br />
116
+ <br />
117
+ <b>Warning</b>: Illegal offset type in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>28</b><br />
118
+ <br />
119
+ <b>Notice</b>: Undefined index: upfile[$loop] in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>14</b><br />
120
+ <br />
121
+ <b>Warning</b>: Illegal offset type in <b>C:\Users\hasegawaryo\Desktop\php\Smarty\postdata\file\file2.php</b> on line <b>28</b><br />
69
122
  ```

1

追記

2016/12/20 05:59

投稿

ryo-dev
ryo-dev

スコア437

title CHANGED
File without changes
body CHANGED
@@ -2,4 +2,68 @@
2
2
  を使って、ファイル(画像)を選択してアップロードはできるんですが、
3
3
  `<input type="file" name="upfile[]" size="40" multiple>`
4
4
  で複数指定を可能にすると、ファイルがアップロードされなくなります。
5
+
6
+ アップロード
7
+ ```php
8
+ <!DOCTYPE html>
9
+ <html>
10
+ <head>
11
+ <meta charset="UTF-8">
12
+ <title>アップロード処理</title>
13
+ </head>
14
+ <body>
15
+ <!-- アップロード時はenctype属性に注意 -->
16
+ <form method="POST" action="file2.php" enctype="multipart/form-data">
17
+ <label for="upfile">ファイルのパス:</label>
18
+ <!-- アップロード可能ファイルサイズ指定 -->
19
+ <input type="hidden" name="max_file_size" value="1000000">
5
- アップロード処理は、別ファイルのphpで処理しています。
20
+ <!-- ファイルの選択ボックス -->
21
+ <!-- <input id="upfile" type="file" name="upfile" size="40"> -->
22
+ <input type="file" name="upfile[]" size="40" multiple>
23
+ <input type="submit" value="アップロード">
24
+ </form>
25
+ </body>
26
+ </html>
27
+ ```
28
+ 処理
29
+ ```php
30
+ <?php
31
+ // アップロードファイルの情報を取得
32
+ $ext = pathinfo($_FILES['upfile']['name']);
33
+ // アップロードを許可する拡張子を配列で定義
34
+ $perm = ['gif', 'jpg', 'jpeg', 'png'];
35
+ // アップロード処理そのものの成否をチェック
36
+ if ($_FILES['upfile']['error'] !== UPLOAD_ERR_OK){
37
+ $msg = [
38
+ UPLOAD_ERR_INI_SIZE => 'php.iniのupload_max_filesizeの制限を越えています。',
39
+ UPLOAD_ERR_FORM_SIZE => 'HTMLのMAX_FILE_SIZE 制限を越えています。',
40
+ UPLOAD_ERR_PARTIAL => 'ファイルが一部しかアップロードされていません。',
41
+ UPLOAD_ERR_NO_FILE => 'ファイルはアップロードされませんでした。',
42
+ UPLOAD_ERR_NO_TMP_DIR => '一時保存フォルダが存在しません。',
43
+ UPLOAD_ERR_CANT_WRITE => 'ディスクへの書き込みに失敗しました。',
44
+ UPLOAD_ERR_EXTENSION => '拡張モジュールによってアップロードが中断されました。',
45
+ ];
46
+ $err_msg = $msg[$_FILES['upfile']['error']];
47
+ // 拡張時が許可されたものであるかを判定
48
+ } elseif (!in_array(strtolower($ext['extension']), $perm)){
49
+ $err_msg = '画像以外のファイルはアップロードできません。';
50
+ // ファイルの内容が画像であるかチェック
51
+ } elseif (!@getimagesize($_FILES['upfile']['tmp_name'])){
52
+ $err_msg = 'ファイルの内容が画像ではありません。';
53
+ // エラーチェックを終えたら、アップロード処理
54
+ } else {
55
+ $src = $_FILES['upfile']['tmp_name'];
56
+ // $dest = mb_convert_encoding($_FILES['upfile']['name'], 'SJIS-WIN', 'UTF-8');
57
+ $dest = $_FILES['upfile']['name'];
58
+ // アップロードファイルのアプロード先
59
+ if (!move_uploaded_file($src, 'doc/'.$dest)){
60
+ $err_msg = 'アップロード処理に失敗しました。';
61
+ }
62
+ }
63
+ // エラー発生時はエラーメッセージを表示
64
+ if (isset($err_msg)){
65
+ die('<div style="color:Red;">'.$err_msg.'</div>');
66
+ }
67
+ // 処理成功時はフォームにリダイレクト
68
+ header('Location: http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/file1.php');
69
+ ```