このコードを使用して、画像をアップロードして表示しています。Javascriptは次のとおりです...
xhr.open("POST", $id("upload").action, true);
xhr.setRequestHeader("X_FILENAME", file.name);
xhr.send(file);
そして、ここに私のPHPがあります
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
if ($fn) {
// AJAX call
file_put_contents(
'uploads/' . $fn,
file_get_contents('php://input')
);
echo "$fn uploaded";
exit();
}
else {
// form submit
$files = $_FILES['fileselect'];
foreach ($files['error'] as $id => $err) {
if ($err == UPLOAD_ERR_OK) {
$fn = $files['name'][$id];
move_uploaded_file(
$files['tmp_name'][$id],
'uploads/' . $fn
);
echo "<p>File $fn uploaded.</p>";
}
}
}
私が抱えている問題は、テーブルを更新するために、画像ファイルとともに投稿の ID も送信したいということです。こんなことができたらどんなにいいだろう…
xhr.open("POST", $id("upload").action, true);
xhr.setRequestHeader("X_FILENAME", file.name);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(file + "fname=david");
しかし、同じ送信で 2 種類のデータを送信できないことは十分承知しています。これを達成するための最良の方法は何ですか?