2014-10-12 127 views
0

我使用下面的片段發送wav文件作爲BLOB到這是寫在PHP服務器:如何在PHP中使用XMLHttpRequest發送的服務器上保存wav文件?

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數據。

+0

你只是在尋找如何解析POST數據在PHP?如果是這樣,請嘗試http://php.net/manual/en/reserved.variables.post.php – nmarsh 2014-10-12 13:00:46

回答

1

什麼你要找的是php://input

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

請注意,我在你的例子假設blob是一個實際的Blob,或ArrayBuffer,或File,而不僅僅是一堆其UTF8解釋也是一個有效的WAVE文件的文本。

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> 
相關問題