gpt4 book ai didi

php - 为什么我的 blob 读取为数组?

转载 作者:行者123 更新时间:2023-12-02 23:37:02 25 4
gpt4 key购买 nike

我有一个 HTML5 录音机,它产生一个音频 blob(Matt Diamond 的 recorder.js)并对我的 PHP 文件执行 jquery ajax 调用。

function audioUpload() {

recorder && recorder.exportWAV(function(blob) {
//first look at the blob
console.log(blob);

var fd = new FormData();
fd.append('audioBlob', blob);
var audioBlob = fd.get('audioBlob');

//second look at the blob
console.log(audioBlob);

$.ajax({
method: "POST",
data: fd,
contentType: false,
processData: false,
url: "audioSend.php",
}).done(function(data) {
console.log(data);
})
});

这里有两个报告 blob 的 console.log 函数:

首先,控制台读取为 blob。 1在代码的另一部分中,我使用它创建了一个对象 URL,并且可以使用 HTML5 音频标签播放音频,因此它可以正常工作。

在第二个中,控制台将其作为文件读取。 2我可以理解这一点,因为按照定义,blob 是类似文件的对象。不过,我不确定为什么它不像第一个实例那样被报告为 blob。

formData 对象被发布到 audioSend.php,我在其中获取值并将其插入到我的数据库中。
$audioBlob = $_FILES['audioBlob'];

$results = mysqli_query($connection, "INSERT INTO audioLog (audio) VALUES ('$audioBlob')");

echo ($audioBlob);

尝试将 blob 值插入我的数据库会引发“数组到字符串转换”错误,并且回显 $audioBlob 确认它被读取为数组。结果,我的 MYSQL DB Blob 列中显示的值只有几个字节,而不是我想要的更大的音频 blob 对象。

为什么将 blob 作为数组读取,如何将 REAL blob 值插入到我的数据库中?

最佳答案

您正在发布数据,因此请通过 $_POST 访问它:

$audioBlob = $_POST['audioBlob'];

此外,请使用准备好的语句,因为您容易受到 SQL 注入(inject)的影响。

关于php - 为什么我的 blob 读取为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44296228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com