質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
|
21
21
|
if( move_uploaded_file( $_FILES['beforeFile']['tmp_name'], $pathBe.'upload_pic.jpg') && move_uploaded_file( $_FILES['afterFile']['tmp_name'], $pathAf.'upload_pic.jpg')) {
|
22
22
|
echo 'アップロードされたファイルを保存しました。';
|
23
|
+
|
23
24
|
} else {
|
24
25
|
echo 'アップロードされたファイルの保存に失敗しました。';
|
25
26
|
}
|
@@ -90,12 +91,21 @@
|
|
90
91
|
chmod($contentspath . $_FILES["afterFile"]["name"], 0644);
|
91
92
|
echo $_FILES["beforeFile"]["name"] . "をアップロードしました。";
|
92
93
|
echo $_FILES["afterFile"]["name"] . "をアップロードしました。";
|
94
|
+
//追記//
|
95
|
+
echo $_FILES["beforeFile"]["error"];
|
96
|
+
echo $_FILES["afterFile"]["error"];
|
93
|
-
|
97
|
+
} else {
|
98
|
+
|
94
99
|
echo "ファイルをアップロードできません。";
|
100
|
+
//追記//
|
101
|
+
echo $_FILES["beforeFile"]["error"];
|
102
|
+
echo $_FILES["afterFile"]["error"];
|
95
103
|
}
|
96
104
|
} else {
|
97
105
|
echo "ファイルが選択されていません。";
|
98
|
-
|
106
|
+
//追記//
|
107
|
+
echo $_FILES["beforeFile"]["error"];
|
108
|
+
echo $_FILES["afterFile"]["error"];
|
99
109
|
}
|
100
110
|
}
|
101
111
|
catch(PDOException $e){
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -66,4 +66,64 @@
|
|
66
66
|
上記コードの場合、データベースに登録できていた処理も通っていないようだったので探っていたところ、htmlのformに「enctype="multipart/form-data"」と記述すると保存も何もされないという状況になることがわかりました。
|
67
67
|
しかし、いろんなサイトを拝見した結果、ファイルをアップロードするにはこの記述が必要のようなので何がダメなのか確認できませんでした。
|
68
68
|
前回の質問から、html内の記述はformしか変えておりません。
|
69
|
-
どこが原因かわかる方がいましたら教えていただきたいです。
|
69
|
+
どこが原因かわかる方がいましたら教えていただきたいです。
|
70
|
+
|
71
|
+
**追記**
|
72
|
+
データベースへの登録とアップロードを一度にやろうとして混乱していたため、アップロード部分に絞って記述してみました。
|
73
|
+
|
74
|
+
```PHP
|
75
|
+
<?php
|
76
|
+
|
77
|
+
$dsn = 'mysql:host=*****;dbname=Test;charset=utf8;unix_socket=/mysql.sock';
|
78
|
+
$user = 'user';
|
79
|
+
$password = 'pass';
|
80
|
+
|
81
|
+
$pathBe = '/top/Server/before';
|
82
|
+
$pathAf = '/top/Server/after';
|
83
|
+
|
84
|
+
try{
|
85
|
+
if (!empty($_FILES['beforeFile']['tmp_name']) && is_uploaded_file($_FILES['beforeFile']['tmp_name']) && !empty($_FILES['afterFile']['tmp_name']) && is_uploaded_file($_FILES['afterFile']['tmp_name'])) {
|
86
|
+
$dbh = new PDO($dsn, $user, $password);
|
87
|
+
|
88
|
+
if (move_uploaded_file($_FILES["beforeFile"]["tmp_name"], $pathBe. $_FILES["beforeFile"]["name"]) && move_uploaded_file($_FILES["afterFile"]["tmp_name"], $pathAf. $_FILES["afterFile"]["name"])) {
|
89
|
+
chmod($markerpath . $_FILES["beforeFile"]["name"], 0644);
|
90
|
+
chmod($contentspath . $_FILES["afterFile"]["name"], 0644);
|
91
|
+
echo $_FILES["beforeFile"]["name"] . "をアップロードしました。";
|
92
|
+
echo $_FILES["afterFile"]["name"] . "をアップロードしました。";
|
93
|
+
} else {
|
94
|
+
echo "ファイルをアップロードできません。";
|
95
|
+
}
|
96
|
+
} else {
|
97
|
+
echo "ファイルが選択されていません。";
|
98
|
+
|
99
|
+
}
|
100
|
+
}
|
101
|
+
catch(PDOException $e){
|
102
|
+
header('Content-Type: text/plain; charset=UTF-8', true, 500);
|
103
|
+
exit($e->getMessage());
|
104
|
+
}
|
105
|
+
?>
|
106
|
+
|
107
|
+
<head>
|
108
|
+
<title>登録画面</title>
|
109
|
+
<meta http-equiv="content-type" charset="UTF-8">
|
110
|
+
</head>
|
111
|
+
|
112
|
+
<html>
|
113
|
+
|
114
|
+
<form action="insert.php" method="post" enctype="multipart/form-data">
|
115
|
+
<p>before</p>
|
116
|
+
<input type="file" name="beforeFile" accept="image/jpg, image/png" required>
|
117
|
+
<p>after</p>
|
118
|
+
<input type="file" name="afterFile" accept="image/jpg" readonly>
|
119
|
+
|
120
|
+
<p><input type="submit" value="登録"></p>
|
121
|
+
</form>
|
122
|
+
|
123
|
+
<?php if ($msg): ?>
|
124
|
+
<p><?=$msg?></p>
|
125
|
+
<?php
|
126
|
+
```
|
127
|
+
|
128
|
+
上記のコードがアップロード部分のみとなります。
|
129
|
+
片方のみにした場合アップロードできることを確認しました。単純に2つ分に増やしたコードだったのですが、原因を教えていただきたいです。
|