回答編集履歴

5

加筆修正

2019/10/22 11:55

投稿

退会済みユーザー
test CHANGED
@@ -69,3 +69,27 @@
69
69
  `__DIR__`には、ディレクトリを示す最後の区切り記号がつかないそうなので、
70
70
 
71
71
  そこを直せばうまくいくと思います。
72
+
73
+
74
+
75
+ --
76
+
77
+
78
+
79
+ 質問文、末尾の、
80
+
81
+ createset.phpの先頭でこのコードを打つと、
82
+
83
+ ~~
84
+
85
+ と出力されました、は、
86
+
87
+ ファイルアップロードを伴わない状態で$_FILESにアクセスしていないでしょうか。
88
+
89
+ POST送信(form要素でmethod="POST")しつつ、
90
+
91
+ input要素でname="image" type="file"にしていて送信できていれば、
92
+
93
+ $_FILES['image']がカラになることはないと思うのですが。
94
+
95
+ `if (isset($_FILES['image']))`などの判定は必要かと思います。

4

見直し

2019/10/22 11:54

投稿

退会済みユーザー
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  ```php
30
30
 
31
- move_uploaded_file($_FILES['image']['tmp_name'], __DIR__ . 'card_image/' . date('YmdHis') . $_FILES['image']['name']);
31
+ move_uploaded_file($_FILES['image']['tmp_name'], __DIR__ . '/card_image/' . date('YmdHis') . $_FILES['image']['name']);
32
32
 
33
33
  ```
34
34
 
@@ -53,3 +53,19 @@
53
53
  表示の処理:
54
54
 
55
55
  ・データベースに保存してあるファイルのパスを、img要素に組み込んで出力。
56
+
57
+
58
+
59
+ --
60
+
61
+
62
+
63
+ すみません、サンプルコードを間違ってました。
64
+
65
+ [PHP: 自動的に定義される定数 - Manual](https://www.php.net/manual/ja/language.constants.predefined.php)
66
+
67
+ ![__DIR__の解説](d8a7ca4889162bef51f43cbba3a76636.png)
68
+
69
+ `__DIR__`には、ディレクトリを示す最後の区切り記号がつかないそうなので、
70
+
71
+ そこを直せばうまくいくと思います。

3

見直し

2019/10/21 04:27

投稿

退会済みユーザー
test CHANGED
@@ -26,6 +26,20 @@
26
26
 
27
27
  「例2 ファイルのアップロードを検証する」のサンプルコードが参考になるはずです。
28
28
 
29
+ ```php
30
+
31
+ move_uploaded_file($_FILES['image']['tmp_name'], __DIR__ . 'card_image/' . date('YmdHis') . $_FILES['image']['name']);
32
+
33
+ ```
34
+
35
+ などとするなど。
36
+
37
+ それと、アップロード元のファイル名(`$_FILES['image']['name']`)をそのまま信用しないで、
38
+
39
+ 別途ファイル名をphp側で自動生成することをお勧めします。
40
+
41
+ (アップロードデータを細工して、サーバーで使えない文字コードを詰めることも可能なため。)
42
+
29
43
 
30
44
 
31
45
  アップロード時の処理:

2

加筆修正

2019/10/15 01:24

投稿

退会済みユーザー
test CHANGED
@@ -25,3 +25,17 @@
25
25
  具体的なやり方も、そのページの
26
26
 
27
27
  「例2 ファイルのアップロードを検証する」のサンプルコードが参考になるはずです。
28
+
29
+
30
+
31
+ アップロード時の処理:
32
+
33
+ ・一時的ファイルを、webブラウザからアクセス可能な場所にコピーする(move_uploaded_file)
34
+
35
+ ・コピー後のパス情報を、データベースに記録しておく。
36
+
37
+
38
+
39
+ 表示の処理:
40
+
41
+ ・データベースに保存してあるファイルのパスを、img要素に組み込んで出力。

1

見直し

2019/10/14 10:10

投稿

退会済みユーザー
test CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
  一時的なところにファイルが生成されている仮のもので、
6
6
 
7
- 受信したphpの処理が終わると消えてしまいます。
7
+ 受信したphpの処理が終わると**消えてしまいます**
8
+
9
+
8
10
 
9
11
  消えないよう、
10
12
 
@@ -19,3 +21,7 @@
19
21
  [PHP: POST メソッドによるアップロード - Manual](https://www.php.net/manual/ja/features.file-upload.post-method.php)
20
22
 
21
23
  に例示されているので読むべきです。
24
+
25
+ 具体的なやり方も、そのページの
26
+
27
+ 「例2 ファイルのアップロードを検証する」のサンプルコードが参考になるはずです。