繁体   English   中英

JS 中的 Blob 对象和 File 对象有什么区别?

[英]What's the difference between Blob objects and File objects in JS?

正如MDN Web 文档所述:

Blob object 表示一个 blob,它是一个类似文件的 object 的不可变的原始数据; 它们可以作为文本或二进制数据读取,也可以转换为 ReadableStream,以便其方法可用于处理数据。

我也知道文件 object 继承了 Blob 的一些属性,并且几乎可以在 Blob 可以使用的任何地方使用它。 但是,如果 File 可以在与 Blob 相同的上下文中使用,我应该如何在它们之间进行选择? 在某些情况下,一个比另一个更可取吗?

正如您链接的页面上所说:

File接口基于Blob ,继承了 blob 功能并将其扩展为支持用户系统上的文件。

File文档显示,除了 blob 属性之外,文件还具有lastModified日期、 name和可能的路径。 它还指出

File对象通常从FileList object 中检索,该文件是用户使用<input>元素 [或] 从拖放操作的DataTransfer object 中选择文件的结果

每当您实际上可以选择使用哪一个时,这意味着您正在自己构建它们。 Blob构造函数相比, File构造函数采用非可选名称参数。 因此,每当您构建要为其提供文件名的内容时,请使用File

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM