Как отправить 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: [],....

Итак, кто-нибудь может мне помочь здесь, как правильно загрузить файл здесь?

0 ответов

Другие вопросы по тегам