如何在 NodeJS 中创建带有路径的文件对象?

2023-11-22

我想知道是否可以创建一个FileNodeJS 中的对象(名称、大小、数据...)以及现有文件的路径?我知道客户端可能有这种情况,但我没有看到 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 个步骤:

  1. 获取Node实例中的文件数据并从中构造一个LocalFileData对象
  2. 将创建的LocalFileData对象发送给客户端
  3. 将 LocalFileData 对象转换为浏览器中的 File 对象。
// Within node.js
const fileData = new LocalFileData('path/to/file.txt')

// Within browser code
const file = constructFileFromLocalFileData(fileData)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 NodeJS 中创建带有路径的文件对象? 的相关文章

随机推荐

  • 类型错误:Ajv 不是构造函数

    我有这个课程 我尝试实例化Ajv使用 new 关键字 我收到此错误 类型错误 Ajv 不是构造函数 Code import as Ajv from ajv export class ValidateJsonService validateJ
  • 解决 Looper.java 中的非空和非空符号的问题

    我正在开发一个 Android 应用程序 请帮助我解决依赖错误 package android os import android support annotation NonNull import android support anno
  • 限制CPU负载或设置进程优先级

    这不是我第一次从我的主机收到 CPU 负载过高的警告 该代码只是一些带有 mysql 查询的随机 php 脚本 没什么花哨的 这些表格没什么特别的 最多几百行 如果需要的话我总是限制它们 我不介意它运行 0 15 秒而不是 0 05 秒 那
  • WPF中如何直接在位图(BitmapSource、WriteableBitmap)上绘图?

    在 GDI Winforms 中我会这样做 Bitmap b new Bitmap 32 32 Graphics g Graphics FromImage b some graphics code 如何使用 DrawingContext 在
  • 如果构造函数参数与 C++ 中的成员变量同名怎么办?

    首先是一些代码 class CInner public CInner const CInner another impl here private some member variables class COuter public COut
  • 大写 Unicode 的正则表达式与“Ó”不匹配?

    它似乎不将重音 识别为大写 usr bin env perl use strict use warnings use 5 14 0 use utf8 use feature unicode strings SIM N s p Upper u
  • VS2010命令提示符给出错误:无法确定 VS Common Tools 文件夹的位置

    我已经安装了VS2010 安装创建了 VS2010 命令提示符的快捷方式 但是当我打开命令提示符时出现错误 无法确定 VS Common Tools 文件夹的位置 我检查了环境变量 VS100COMNTOOLS 它有值 C Program
  • 我应该提交由 Eclipse 更改的文件吗?

    我以Eclipse项目的形式继承了一个Java项目 更改 Tomcat 配置 从 v6 到 v7 后 Subclipse 提示我提交以下文件 classpath org eclipse core prefs org eclipse comm
  • 为什么 Silverlight TextBox 使用 \r 作为换行符而不是 Environment.Newline (\r\n)?

    在 silverlight 中 如果 TextBox AcceptsReturn 则所有换行符均为 r 即使 Environment Newline 为 r n 为什么是这样 WPF 将 r n 作为文本框的换行符 我同意尔坦的回答 我遇到
  • 解码 Base64 图像

    我在 HTML 中嵌入了 Base64 图像 如何使用 C 或 VB net 对其进行解码 google com gt base64 图像解码 C gt http www eggheadcafe com community aspnet 2
  • 启用位置/GPS 设置而不使用 Play 服务 API

    大多数人可能已经知道 Google Play 服务中有一个新的位置设置对话框 API 对于那些不知道的人 这里是使用 Dialog API 的地图应用程序的屏幕截图 谷歌只在他们的播放服务中添加该 API 这有点不公平 另一方面 我认为如果
  • 仅静态链接某些库

    在与 GCC 链接时 如何将某些特定库静态链接到我的二进制文件 gcc static 尝试静态链接all链接库 但我还没有其中一些的静态版本 例如 libX11 gcc lsome dynamic lib code c some stati
  • CrossGeolocator 的 GetPositionAsync 不起作用

    我在用交叉地理定位器检索设备的当前纬度和经度 不过我在里面使用它出现时覆盖方法 但它不起作用 这异步获取位置方法挂起应用程序 protected override void OnAppearing base OnAppearing var
  • jQuery:如何更改标签名称?

    jQuery 如何更改标签名称 例如 tr 1 tr I need div 1 div 我可以 创建 DOM 元素 将tr内容复制到div 从 dom 中删除 tr 但我可以直接做吗 PS tr get 0 tagName div 结果是D
  • Liquibase Hibernate 插件不起作用

    如此处所述 https github com liquibase liquibase hibernate issues 74 我在使 liquibase hibernate 扩展正常工作时遇到问题 我想我已经设置好了一切 但似乎我一直遇到奇
  • Spring - mongodb - 聚合 - 需要“光标”选项

    执行以下聚合管道 public void getMostLikedItems UnwindOperation unwind Aggregation unwind favoriteItems GroupOperation group Aggr
  • 仅生成 8 个字符的 UUID

    UUID 库生成 32 个字符的 UUID 我想生成仅 8 个字符的 UUID 可以吗 这是不可能的 因为 UUID 每个定义都是 16 字节的数字 当然 您可以生成 8 个字符长的唯一字符串 请参阅其他答案 另外 生成较长的 UUID 并
  • 将文件从操作系统拖放到 Java 应用程序 (Swing)

    首先我要说的是我一直在阅读拖放教程以及类似的问题 但不幸的是我对这件事变得更加困惑 我想要实现的目标相对简单 所以我很惊讶它已经给我带来了这么多麻烦 我正在编写一个小型实用程序应用程序 它将把一堆结果文件 自定义定义的 xml 类型 合并到
  • 未找到“COM”类

    我一直在尝试在脚本中打开 Word 文档 但收到相同的错误 Fatal error Class COM not found in Applications XAMPP xamppfiles htdocs php on line 3 我的代码
  • 如何在 NodeJS 中创建带有路径的文件对象?

    我想知道是否可以创建一个FileNodeJS 中的对象 名称 大小 数据 以及现有文件的路径 我知道客户端可能有这种情况 但我没有看到 NodeJS 的任何内容 换句话说 我想要与 NodeJS 中相同的函数 function srcToF