我有一个Uint8Array,它在Javascript端有10000个字节。
var data = new Uint8Array(10000) ;
我想将它发送给PHP并用它创建一个文件:
$.ajax({
url:'saver.php',
type: 'POST',
contentType: 'application/octet-stream',
data:data,
processData: false
});
这个ajax正在发送数据(我在"请求有效载荷"控制台上的部分看到它)但是没有$ _POST记录,$ _POST数组是空的,只是沉默。如何正确抓住它?
答案 0 :(得分:1)
就我而言。 我从 JS 请求数组中获取二进制文件:Uint8Array 的 $file['content'] 格式。
<?php
$packed = pack("c*", ...$file['content']);
答案 1 :(得分:0)
这似乎是一种已知的行为。 对于10000字节的数组,您应该能够使用
$rawPost = file_get_contents('php://input');
从请求中获取数据,而不是检查$ _POST变量。
请注意,此方法会将数据加载到内存中,因此如果数据太大,您将收到错误。