发送 Blob 时为空 $_POST
empty $_POST while sending Blob
我正在使用 Blob 将二进制数据发送到服务器,但变量中没有任何内容$_POST
。我做错了什么?
var xhr = new XMLHttpRequest();
xhr.open('POST', '/save.php', true);
var formData = new FormData();
formData.append("data", new Blob(["㚂☇䰉耸ڀ찃怮...binary...:⡒㠯ݟᑣ"]));
xhr.send(formData);
xhr.onload = function(e){
if (this.status == 200){
console.log(this.responseText);
}
};
服务器端:
var_dump($_POST); //returns array(0) {}
这是一个
非常简单的修复...
当您发送BLOB
时,它会作为file
而不是post
数据发送。因此,您需要使用$_FILES
而不是$_POST
。
使用修改后的代码var_dump($_FILES)
输出:
"array(1) {
["data"]=>
array(5) {
["name"]=>
string(4) "blob"
["type"]=>
string(24) "application/octet-stream"
["tmp_name"]=>
string(14) "/tmp/tmpfilename"
["error"]=>
int(0)
["size"]=>
int(44)
}
}
然后,您可以使用与任何其他上传文件相同的file_get_contents($_FILES['data']['tmpname'])
打开文件服务器端。
我设法以这种方式发送该数据:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/save.php', true);
xhr.send("㚂☇䰉耸ڀ찃怮...binary...:⡒㠯ݟᑣ");
xhr.onload = function(e){
if (this.status == 200){
console.log(this.responseText);
}
};
服务器端:
var_dump($HTTP_RAW_POST_DATA); //string(1820) "㚂☇䰉耸ڀ찃怮...binary...:⡒㠯ݟᑣ"
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- Jquery POST未填充数组
- 如何在php文件中获取$.post-ajax传递的值
- 在POST中将html表作为csv提交
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 如何使用post方法从方法上传文件
- Django: AJAX + CSRF POST gives 403
- AJAX不会在文件上传后重定向到网页-POST方法
- 下载使用POST数据动态生成的文件
- Javascript/Jquery Blob not showing Chrome PDF
- 如何使用自定义标头跨域执行AJAX POST
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- jQuery在输入下验证post错误消息
- 在文本区域POST后解码JSON
- How to POST javascript Blob to JAX-WS Web service
- 如何通过HTTP将Blob POST到其他域
- 为什么Flask没有收到我的POST Blob
- 如何发送包含Blob的http多部分POST请求
- Django post请求没有在终端显示javascript blob对象
- 如何使用javascript将blob作为文件POST