【发布时间】:2022-10-03 06:51:07
【问题描述】:
长话短说,我使用了一个 DataForm 对象,其中包含一个图像的 blob 作为部分之一,并将其发送到我的 node.js 服务器到强大的解析器中:
//blob enters the files variable
formParser.parse(req, (err, fields, files)=>{
if(err)throw err;
const fileInfo = JSON.parse(fields.JSON);
//figure out how to read the blob, how to get it\'s array buffer, then write to C disk
console.log(files);
//fs.writeFile() here
})
如何从这个持久文件中提取 Blobs ArrayBuffer,看起来像这样:
{
Binary: PersistentFile {
_events: [Object: null prototype] { error: [Function (anonymous)] },
_eventsCount: 1,
_maxListeners: undefined,
lastModifiedDate: 2022-06-15T17:44:50.214Z,
filepath: \'C:\\\\Users\\\\rnata\\\\AppData\\\\Local\\\\Temp\\\\f962bfe8ab505addfba1e4600\',
newFilename: \'f962bfe8ab505addfba1e4600\',
originalFilename: \'blob\',
mimetype: \'image/png, image/jpg, image/jpeg\',
hashAlgorithm: false,
size: 373021,
_writeStream: WriteStream {
_writableState: [WritableState],
_events: [Object: null prototype],
_eventsCount: 1,
_maxListeners: undefined,
path: \'C:\\\\Users\\\\rnata\\\\AppData\\\\Local\\\\Temp\\\\f962bfe8ab505addfba1e4600\',
fd: 4,
flags: \'w\',
mode: 438,
start: undefined,
autoClose: true,
pos: undefined,
bytesWritten: 373021,
closed: false,
[Symbol(kFs)]: [Object],
[Symbol(kCapture)]: false,
[Symbol(kIsPerformingIO)]: false
},
hash: null,
[Symbol(kCapture)]: false
}
}
我需要什么类,或者我必须使用什么方法,以便我可以提取一个数组缓冲区并在 fs.writeFile() 中使用它。
谢谢!
-
我也想知道答案
-
这就是答案。如果您不指定目录,Formidable 已经默认自动将二进制文件写入 C:Drive。所以你必须通过文件名属性找到文件,然后使用 fs.rename 对其进行重命名,然后由于它已经是一个二进制文件,你只需在它上面使用 fs.readfile() 来读取它二进制数据。总而言之,强大的自动将文件作为二进制文件保存到 C: 驱动器,然后使用 fs.readFile() 获取它的二进制数据。
标签: javascript node.js request blob formidable