从MongoDB读取二进制文件

thatkingguy_

我目前正在从事一个项目,该项目涉及上传图像和视频,然后将它们保存到MongoDB。我正在使用multer和GridFs实现此目的。图像和视频以二进制格式保存。现在,我有一个小问题,我希望能够打开图像文件并使用Jimp进行一些图像处理,但是我不知道该如何实现。

这是从数据库即fs.chunk集合中返回的内容

found: {
    _id: 5ff5fe1f6461621e34f124d5,
    files_id: 5ff5fe1f6461621e34f124d4,
    n: 0,
    data: Binary {
      _bsontype: 'Binary',
      sub_type: 0,
      position: 261120,
      buffer: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 48 00 48 00 00 ff e2 0c 58 49 43 43 5f 50 52 4f 46 49 4c 45 00 01 01 00 00 0c 48 4c 69 6e 6f 02 10 00 00 ... 261070 more bytes>
    }
  }

这是存储在fs.files集合中的内容

fieldname: 'avatar',
  originalname: 'CMG - Bright Future Blaze.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  id: 5ff5fabcbcd9bb26c8896ce6,
  filename: 'ef96af4bd209f827963aa9580196e453.jpg',
  metadata: null,
  bucketName: 'uploads',
  chunkSize: 261120,
  size: 391319,
  md5: '10782da2083a3f1f201ba6f33748da62',
  uploadDate: 2021-01-06T18:00:28.382Z,
  contentType: 'image/jpeg'

在上面的代码段中,filename列出了,但我的问题实际上是打开此文件并进行一些图像处理。任何帮助,将不胜感激。如果我尝试使用data.toString('base64')其输出转换二进制数据[object ArrayBuffer]

戴龙

data属性实际上是ArrayBuffer而不是Buffer。如果您参考Buffer上的文档你应该能够做

Buffer.from(data).toString('base64')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从mongodb读取二进制日志文件

来自分类Dev

大块读取二进制文件

来自分类Dev

从二进制文件读取

来自分类Dev

从二进制文件读取char *

来自分类Dev

从二进制文件读取

来自分类Dev

读取二进制文件c

来自分类Dev

读取大型二进制文件

来自分类Dev

读取/写入二进制文件

来自分类Dev

分批读取二进制文件

来自分类Dev

从二进制文件中读取

来自分类Dev

读取整数的二进制文件

来自分类Dev

读取已发布的二进制文件并写入新的二进制文件

来自分类Dev

读取文件为二进制/十六进制

来自分类Dev

Haskell:用二进制懒惰地读取二进制文件

来自分类Dev

用于读取二进制文件的迭代器

来自分类Dev

用Ruby读取不同大小的二进制文件

来自分类Dev

在Spark Scala中读取二进制文件

来自分类Dev

C:从二进制文件读取字节

来自分类Dev

如何使用VBScript从二进制文件读取

来自分类Dev

在C ++中读取二进制文件的正确方法?

来自分类Dev

从C中的文件读取二进制整数

来自分类Dev

Haskell:懒惰地读取二进制文件

来自分类Dev

打开并读取二进制文件(javascript)

来自分类Dev

C ++:提高ifstream二进制文件的读取速度

来自分类Dev

如何从二进制文件读取多个结构

来自分类Dev

将图像读取为二进制文件

来自分类Dev

从二进制文件C ++读取16位整数

来自分类Dev

在python中读取二进制文件时的偏移

来自分类Dev

从二进制文件读取巨型int数组