我有一个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 数组为空,只是静音。如何正确抓住它?
这似乎是一种已知的行为。对于 10000 字节的数组,您应该能够使用
$rawPost = file_get_contents('php://input');
从请求中获取数据,而不是检查 $_POST 变量。
请注意,此方法将数据加载到内存中,因此如果数据太大,则会出现错误。
就我而言。我从JS请求数组中获取二进制文件:Uint8Array的$file['content']格式。
<?php
$packed = pack("c*", ...$file['content']);