JS字节数组到PHP端的文件


JS Byte Array to File on PHP Side

我有一个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']);