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

Javascript 通过ajax发布到PHP的音频blob返回NULL,javascript,php,ajax,recorder.js,Javascript,Php,Ajax,Recorder.js,我正在使用recorder.js。我的目标是把录音上传到服务器上,好像音频块被上传到了服务器上。但是我不断地得到$_文件[“file”][“tmp_name”]的null返回值 Javascript: function uploadAudio(){ audioRecorder.stop(); audioRecorder.exportWAV(function(audio) { var fd = new FormData(); fd.append('filename', 'test.wav'); f

我正在使用recorder.js。我的目标是把录音上传到服务器上,好像音频块被上传到了服务器上。但是我不断地得到$_文件[“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:

以下是我在firefox中使用firebug发布的标题数据:

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

test.wav
-----------------------------2600221228510
Content-Disposition: form-data; name="data"; filename="blob"
Content-Type: audio/wav
多亏了你,我才使它运转起来

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!");
        }
      });
}); 
if(isset($_FILES['file']) and !$_FILES['file']['error']){
    $fname = "11" . ".wav";

    move_uploaded_file($_FILES['file']['tmp_name'], "recordings/" . $fname);
}
?>
php:
if(isset($_FILES['file']) and !$_FILES['file']['error']){
    $fname = "11" . ".wav";

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