Pou*_*opa 9 javascript file node.js
我想知道是否可以使用现有文件的路径在 NodeJS 中创建文件对象(名称、大小、数据等)?我知道这在客户端是可能的,但我看不到 NodeJS。
换句话说,我希望在 NodeJS 中使用相同的功能:
function srcToFile(src, fileName, mimeType){
return (fetch(src)
.then(function(res){return res.arrayBuffer();})
.then(function(buf){return new File([buf], fileName, {type:mimeType});})
);
}
srcToFile('/images/logo.png', 'logo.png', 'image/png')
.then(function(file){
console.log(file);
});
Run Code Online (Sandbox Code Playgroud)
输出将类似于:
File {name: "logo.png", lastModified: 1491465000541, lastModifiedDate: Thu Apr 06 2017 09:50:00 GMT+0200 (Paris, Madrid (heure d’été)), webkitRelativePath: "", size: 49029, type:"image/png"…}
Run Code Online (Sandbox Code Playgroud)
我搜索了文件系统示例和其他可能性,但一无所获。
所以我决定用 JSON 创建我自己的 File 对象。
var imagePath = path.join('/images/logo.png', 'logo.png');
if (fs.statSync(imagePath)) {
var bitmap = fs.readFileSync(imagePath);
var bufferImage = new Buffer(bitmap);
Magic = mmm.Magic;
var magic = new Magic(mmm.MAGIC_MIME_TYPE);
magic.detectFile(imagePath, function(err, result) {
if (err) throw err;
datas = [{"buffer": bufferImage, "mimetype": result, "originalname": path.basename(imagePath)}];
var JsonDatas= JSON.parse(JSON.stringify(datas));
log.notice(JsonDatas);
});
}
Run Code Online (Sandbox Code Playgroud)
输出 :
{
buffer:
{
type: 'Buffer',
data:
[
255,
216,
255
... 24908 more items,
[length]: 25008
]
},
mimetype: 'image/png',
originalname: 'logo.png'
}
Run Code Online (Sandbox Code Playgroud)
我认为这可能不是最好的解决方案,但它给了我我想要的。如果您有更好的解决方案,欢迎您提出。