我想知道是否可以创建一个File
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);
});
输出如下:
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"…}
对于那些正在寻找此问题解决方案的人,我创建了一个 npm 包,以便更轻松地使用 Node 的文件系统检索文件并将它们转换为 JS File 对象:
https://www.npmjs.com/package/get-file-object-from-local-path
这解决了 Node 的 fs 文件系统(浏览器无法访问)和浏览器的 File 对象类型(Node 无法创建)之间缺乏互操作性的问题。
需要 3 个步骤:
- 获取Node实例中的文件数据并从中构造一个LocalFileData对象
- 将创建的LocalFileData对象发送给客户端
- 将 LocalFileData 对象转换为浏览器中的 File 对象。
// Within node.js
const fileData = new LocalFileData('path/to/file.txt')
// Within browser code
const file = constructFileFromLocalFileData(fileData)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)