如果使用XMLHttpRequest发送wav文件,如何在PHP上保存服务器上的wav文件?

时间:2014-10-12 12:09:15

标签: javascript php post recorder.js

我使用以下代码片段将一个wav文件作为blob发送到用PHP编写的服务器:

function upload(blob) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/upload.php', true);
    xhr.onload = function (e) {
        var result = e.target.result;
    };

    xhr.send(blob);
}

我对如何处理服务器上的POST数据感到困惑。

2 个答案:

答案 0 :(得分:1)

您要找的是php://input

$fp = fopen("php://input", "r");
$wav_file = stream_get_contents($fp);

请注意,我假设您的示例中的blob是实际BlobArrayBufferFile,而不仅仅是一堆UTF8解释的文字也是一个有效的WAVE文件。

答案 1 :(得分:0)

<input type="file" id="uploadfile" name="uploadfile" />
<input type="button" value="upload" onclick="upload()" />



<script>
   var client = new XMLHttpRequest();

   function upload() 
   {
      var file = document.getElementById("uploadfile");

      /* Create a FormData instance */
      var formData = new FormData();
      /* Add the file */ 
      formData.append("upload", file.files[0]);

      client.open("post", "/upload", true);
      client.setRequestHeader("Content-Type", "multipart/form-data");
      client.send(formData);  /* Send to server */ 
   }

   /* Check the response status */  
   client.onreadystatechange = function() 
   {
      if (client.readyState == 4 && client.status == 200) 
      {
         alert(client.statusText);
      }
   }
</script>