【发布时间】:2019-12-22 00:38:08
【问题描述】:
我正在尝试使用 JS 和 HTML 将一个音频 blob 文件(由客户端麦克风的录音制成)发送到我可以保存的服务器。我尝试使用 FormData,因此我可以根据我称为 ID 的变量将文件与名称相关联。
我正在尝试使用 php 脚本将 FormData 发布到我服务器上的某个位置,但它给我留下了一个没有名称和数据(0 字节)的文件。
当媒体记录器停止时,我的 javascript 包含以下功能:
mediaRecorder.onstop = function(e) {
audioBlob = new Blob(audioChunks, {type:'audio/ogg'});
blobUrl = URL.createObjectURL(audioBlob);
var formData = new FormData();
formData.append('audio',audioBlob);
formData.append('name',String(ID,".ogg"))
$.ajax({
type: 'POST',
url: 'audiosaver.php',
data: formData,
cache: false,
contentType: "multipart/form-data",
processData: false,
})
和 php:
<?php
$post_data = file_get_contents('php://input');
$name = "data/".$post_data;
$data = var_dump($_FILES);
file_put_contents($name, $data);
?>
我在数据文件夹中的服务器上得到一个名为“-.ogg”的文件,它是 0 字节。我的 XHR 响应负载显示为 array(0) {},XHR 请求负载参数包括:
-----------------------------3054348293122
Content-Disposition: form-data; name="audio"; filename="blob"
Content-Type: audio/ogg
然后我假设一堆数据是以文本形式编码的音频。
【问题讨论】:
标签: javascript php post audio blob