我无法理解如何在我的 PHP 脚本中从 XMLHttpRequest 获取 blob。我在 JS 中有这样的代码:
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
全局数组,但它们没有任何文件。我什至尝试file
像这样添加到网址:
req.open("POST", “uploader.php?file=” + file, true);
这也不是解决方案。
在这里阅读答案,我发现我可以使用php://input
. 我试过了,是的,我得到了一些原始数据。将彻底检查这个解决方案。但是想问这是唯一的方法吗?如果不是,其他是什么?那么哪一个是最正确的呢?
此外,当我设置标题时("Content-Length", file.size)
,console.log
显示错误并显示“拒绝设置不安全的标题“内容长度”。这个标题不是必需的吗?