Я записываю звук с микрофона, и мне нужно отправить его на сервер с формой POST.
Я могу записать и получить объект BLOB-объекта, но я не знаю, как отправить.
Я попытался преобразовать BLOB-объект в ArrayBuffer и установить скрытое поле со значением, но я не уверен, что это правильный путь.
Это код js для получения BLOB-объекта, преобразования в ArrayBuffer и установки в скрытое поле:
var arrayBuffer;
var fileReader = new FileReader();
fileReader.onload = function(event) {
arrayBuffer = event.target.result;
jQuery('hidden_field').val(arrayBuffer);
};
fileReader.readAsArrayBuffer(blobObject);
После этого я просто отправляю форму обычным способом с помощью кнопки отправки.
На сервере, если я выполняю команду dd для объекта запроса, это то, что я получаю:
array:2 [▼
"_token" => "8HcKsoGblW9lEPVY0JYrFDbDAajdb63xdSQC3r5E"
"hidden_field" => "[object ArrayBuffer]"
]
Я не знаю, правильно это или нет.
Если это правильно, как я могу справиться с этим?
ОБНОВЛЕНО
Я решил отправить BLOB-объект в скрытое поле в виде строки base64 с помощью следующего кода:
var fileReader = new FileReader();
fileReader.onload = function(event) {
jQuery('#hidden').val(fileReader.result.substr(fileReader.result.indexOf(',')+1));
};
fileReader.readAsDataURL(s);