Как отправить base64 string audio/ogg с помощью ajax, используя $http, для загрузки файла с помощью s3-skipper
У меня есть приложение паруса. Так что в бэкэнде у меня есть узел js server, а во внешнем интерфейсе - угловое js-приложение.
И из внешнего интерфейса я хочу загрузить какой-нибудь файл в s3. Так что для этого я использую s3-шкипер в бэкэнде.
Так что во внешнем интерфейсе я
<form id="formUpload"
method = "post"
action = "/bin/upload"
enctype= "multipart/form-data" >
<input type="file" id="inFile" name="file" />
<input type="button" value="Upload" onclick="uploadFile();" />
</form>
И затем, чтобы загрузить файл в s3 с помощью шкипера, я обращаюсь к потоку файлов в бэкэнде как:
req.file("file");
И весь этот процесс работает отлично. Теперь у меня есть другой сценарий, когда я записываю аудиофайл из браузера и хочу загрузить файл, используя тот же s3-Skipper, на s3.
Но в этом случае по понятной причине у меня нет html-элемента формы и файла ввода. А для аудио файла у меня есть base64 audio dataUrl:
data:audio/ogg;base64,T2dnUwACAAAAAAAAAABx+oohAAAAAH....
И так как я не могу использовать отправку формы, я хочу отправить данные, используя $http. Итак, что я делаю:-
var blob = $scope.dataURItoBlob(audioDataUrl, 'audio/ogg');
var formData = new FormData();
formData.append('file', blob);
$http({
method: 'POST',
url: '/file/upload/multi',
headers: { 'Content-Type': 'multipart/form-data;' },
data: formData
И после отправки запроса я вижу, что некоторые данные отправляются в сети браузера.
Но в бэкэнде это то, что я получаю как req.file("file"):
{ _fatalErrors: [],
isNoop: true,
_files: [],....
Итак, кто-нибудь может мне помочь здесь, как правильно загрузить файл здесь?