PHPスクリプトのXMLHttpRequestからBLOBを取得する方法を理解できません。 私はJSでこのようなコードを持っている:サーバーサイド(PHP)でXMLHttpRequestを使用してブラウザから送信されたデータを受け取る方法は?
var req = new XMLHttpRequest(); // create instance
var file = document.getElementById('file').files[0]; // get File Object from <input type=file />. It is picture
req.open("POST", “uploader.php”, true); // make request
req.setRequestHeader("Content-Type", file.type); set request headers
req.setRequestHeader("Content-Length", file.size);
req.send(file); // send request with file-blob
if (req.readyState == 4 && req.status == 200) {
alert("result = " + req.responseText);
}
は、私は、サーバーにBLOBを送信する方法を理解しますが、そこにそれを得るためにどこかから理解していません。 $_POST
、$_GET
、$_FILES
グローバルアレイを使用しようとしましたが、ファイルがありません。私も、このようなURLにfile
を追加しようとしました:
req.open("POST", “uploader.php?file=” + file, true);
それはどちらかの解決策ではありません。
答えを読むここでは、php://input
を使用して生のバイナリデータを取得できることがわかりました。私は試してみました。はい、生データがあります。この解決策を何度も調べようとしています。しかし、これが唯一の方法であるか尋ねたいですか?そうでない場合、他は何ですか?そして、どれが一番正しい?
また、("Content-Length", file.size)
というヘッダーを設定すると、console.log
にエラーが表示され、「安全でないヘッダーを設定することを拒否しました」というメッセージが表示されます。このヘッダーは必要ないのですか?以下のポスト