如何使用$ http发送带有ajax的base64字符串audio / ogg,以使用s3-skipper

时间:2016-02-18 19:54:49

标签: amazon-s3 sails.js multipartform-data form-data skipper

我有一个帆应用程序。所以在后端我有节点js服务器,在前端我有一个角度js应用程序。

从前端我想将一些文件上传到s3。因此,我在后端使用s3-skipper。

所以在我的前端

<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>

然后使用skipper在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 个答案:

没有答案