回答編集履歴
5
加筆修正
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
見直し
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
見直し
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
加筆修正
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
見直し
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 ファイルのアップロードを検証する」のサンプルコードが参考になるはずです。
|