当前位置: 首页 > 面试题库 >

Blob另存为[object Object] Node.js

章飞虎
2023-03-14
问题内容

我想用HTML5录制来自麦克风的音频,然后将其发送到服务器进行保存。但是,当前保存的文件仅包含[object Object]

这是我的代码片段。

前端:

console.log(blob);
$http.post('/api/save_recording', blob)
  .success(function(new_recording) {
    console.log("success");
  })

日志打印:

Blob {type: "audio/wav", size: 237612, slice: function}
success

后端:

exports.saveRecording = function(req, res) {
  console.log(req.body);

  fs.writeFile("temp/test.wav", req.body, function(err) {
    if(err) {
      console.log("err", err);
    } else {
      return res.json({'status': 'success'});
    }
  }) 
}

日志打印: { type: 'audio/wav', size: 786476 }

您能告诉我为什么它不起作用以及如何解决吗?


问题答案:

我终于完成了这项工作。使它起作用的方法是在客户端上对Blob进行编码,然后在服务器上对其进行解码。

前端:

// converts blob to base64
var blobToBase64 = function(blob, cb) {
  var reader = new FileReader();
  reader.onload = function() {
    var dataUrl = reader.result;
    var base64 = dataUrl.split(',')[1];
    cb(base64);
  };
  reader.readAsDataURL(blob);
};

blobToBase64(blob, function(base64){ // encode
  var update = {'blob': base64};
  $http.post('/api/save_recording', update)
    .success(function(new_recording) {
      console.log("success");
    });
});

后端:

exports.saveRecording = function(req, res) {
  var buf = new Buffer(req.body.blob, 'base64'); // decode
  fs.writeFile("temp/test.wav", buf, function(err) {
    if(err) {
      console.log("err", err);
    } else {
      return res.json({'status': 'success'});
    }
  }); 
};


 类似资料:
  • 问题内容: 我正在使用以下代码从我的 Android应用程序中 拍照: 我正在通过POST将此字符串发送到我的PHP服务器,并将其接收到。我有一个数据库,其中有一个type字段。我试图保存在,但它被保存为损坏的图像。我尝试将另存为,但是无论如何也无法正常工作。 我想做三件事: 将图像保存到服务器端数据库(BLOB) 显示图像到网页 将其发送回Android应用。 我在 理解 上述任务所需的不同格式

  • 简单地说,我想在Firefox中播放一个blob MP3文件。 我可以访问blob本身:(用mime类型切片),以及它的URL:。 我试过: > 但我在Firebug中得到一个警告,告诉我Firefox无法读取类型的文件。 多个音频播放器库(SoundManager、JPlayer等),但似乎都不允许blob URL作为输入。 我做错了吗?或者有人知道可以从Blob播放MP3文件的变通方法或库吗?

  • 我正在处理一个Azure存储项目,其中我需要在容器中上传和下载blob,并在列表框中列出容器和blob。我无法在我的列表框中显示容器和blob。 最后是我调用上传、下载和列表方法的接口背后的代码:

  • 我有一个应用程序,允许用户在blobstore中保存blob。我现在有一个这样做的模式,但我感兴趣的是更简单和不太扭曲的东西。关于上下文,想象一下我的应用程序允许用户上传一张动物的图片,上面有一段描述动物正在做什么的文字。 当前架构 > 用户调用我的endpointapi将动物的和保存在实体中。注意:实体实际上有4个字段(、、和作为字符串)。但endpointapi只允许保存提到的两个。 在end

  • 使用 iReport 3.7.5,我预览了 Jasper Report,我想将其另存为 PDF 文件。PDF 文件已创建,但 PDF 文件上缺少粗体和斜体格式。 请告诉我如何保存正确的PDF文件。