Я использую следующий фрагмент для отправки файла 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-данные на сервере.
То, что вы ищете, это PHP: // ввод:
$fp = fopen("php://input", "r");
$wav_file = stream_get_contents($fp);
Обратите внимание, что я предполагаю blob
в твоем примере актуально капля, или же ArrayBuffer, или же файл, а не просто набор текста, чья интерпретация UTF8 также является допустимым файлом WAVE.
<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>