javascript - 通过 ajax 返回 NULL 发布到 PHP 的音频 blob

标签 javascript php ajax recorder.js

我正在使用 recorder.js。我的目标是将录音上传到服务器,看起来音频 block 正在被发布到服务器。但我不断收到 $_FILES["file"]["tmp_name"];

返回 null

Javascript:

function uploadAudio(){
audioRecorder.stop();
audioRecorder.exportWAV(function(audio) {
var fd = new FormData();
fd.append('filename', 'test.wav');
fd.append('data', blob);
$.ajax({
    type: 'POST',
    url: 'testthing.php',
    data: fd,
    processData: false,
    contentType: false
}).done(function(data) {
       console.log(data);
});
});
}

PHP:

$res="recordings/";
$yo = $_FILES["file"]["tmp_name"];
rename($yo,$res.'test.wav');

这是我在 firefox 中使用 firebug 发布的标题数据得到的:

-----------------------------2600221228510
Content-Disposition: form-data; name="filename"

test.wav
-----------------------------2600221228510
Content-Disposition: form-data; name="data"; filename="blob"
Content-Type: audio/wav

最佳答案

感谢Pass Blob through ajax to generate a file我能够让它工作

javascript:

audioRecorder.exportWAV(function(blob) {

      var url = (window.URL || window.webkitURL).createObjectURL(blob);
      console.log(url);

      var filename = "test.wav";
      var data = new FormData();
      data.append('file', blob);

      $.ajax({
        url :  "testthing.php",
        type: 'POST',
        data: data,
        contentType: false,
        processData: false,
        success: function(data) {
          alert("boa!");
        },    
        error: function() {
          alert("not so boa!");
        }
      });
}); 

php:

if(isset($_FILES['file']) and !$_FILES['file']['error']){
    $fname = "11" . ".wav";

    move_uploaded_file($_FILES['file']['tmp_name'], "recordings/" . $fname);
}
?>

关于javascript - 通过 ajax 返回 NULL 发布到 PHP 的音频 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43796142/

相关文章:

jquery - 为什么更改链接 ID 后执行相同的功能?

javascript - 从数组中检索列的有效方法是什么?

php - 如何正确使用facebook OAuth2?

php - WordPress 数据库报错 MySQL server has gone away for query

jquery - 如何在我的 jquery 中的 <p> 标记中添加新行?

javascript - PHP Redirect 会破坏 ajax,因此强制 Jquery 页面刷新一次

javascript - 如何在函数内部调用函数?

javascript - 在 React 中使用 useState 设置 promise 状态时应用程序不断重新渲染

javascript - 构造对象时如何使用三元运算符?

php - 在 Javascript Jquery 中提醒变量时不更新文本字段错误的值