File
文件(File
)接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。
通常情况下, File
对象是来自用户在一个 <input>
元素上选择文件后返回的 FileList
对象,也可以是来自由拖放操作生成的 DataTransfer
对象,或者来自 HTMLCanvasElement
上的 mozGetAsFile
() API。在 Gecko 中,特权代码可以创建代表任何本地文件的 File 对象,而无需用户交互(有关详细信息,请参阅注意事项。
File
对象是特殊类型的 Blob
,且可以用在任意的 Blob 类型的 context 中。比如说, FileReader
, URL.createObjectURL()
, createImageBitmap()
(en-US), 及 XMLHttpRequest.send()
都能处理 Blob
和 File
。
参考 从 Web 应用程序使用文件 了解更多信息和例子。
构造函数
File()
-
返回一个新构建的文件对象(
File
)。
属性
File
接口也继承了 Blob
接口的属性:
File.lastModified
只读-
返回当前
File
对象所引用文件最后修改时间,自 UNIX 时间起始值(1970 年 1 月 1 日 00:00:00 UTC)以来的毫秒数。 File.lastModifiedDate
只读 已弃用-
返回当前
File
对象所引用文件最后修改时间的Date
对象。 File.name
只读-
返回当前
File
对象所引用文件的名字。 File.size
只读-
返回文件的大小。
File.webkitRelativePath
只读 非标准-
返回
File
相关的 path 或 URL。 File.type
只读-
返回文件的 多用途互联网邮件扩展类型(MIME Type)
方法
File
接口没有定义任何方法,但是它从 Blob
接口继承了以下方法:
Blob.slice([start[, end[, contentType]]])
-
返回一个新的
Blob
对象,它包含有源Blob
对象中指定范围内的数据。
规范
Specification |
---|
File API # file-section |
浏览器兼容性
BCD tables only load in the browser
注意事项
- 在 Gecko 中,你可以从 Chrome 代码中使用这个 API。详细内容参见 Using the DOM File API in chrome code。若要从 chrome 代码,JSM 和引导范围中使用它,你必须使用
Cu.importGlobalProperties(['File']);
来导入它。 - 从 Gecko 6.0 开始,在特权代码(比如扩展中的代码)中,可以将一个
nsIFile
对象传入File
构造函数,从而生成一个 File 对象。 - 从 Gecko 8.0 开始,在 XPCOM 组件代码中,你可以直接使用
new File
来创建一个File
对象,而不需要像以前那样必须实例化一个nsIDOMFile
对象。File
对象和Blob
相反,使用第二个参数作为文件名。文件名可以是任意的字符串。new File( Array parts, String filename, BlobPropertyBag properties);
- 下列非标准属性及方法在 Gecko 7 中就被移除了:
File.fileName
、File.fileSize
、File.getAsBinary()
、File.getAsDataURL()
、File.getAsText(string encoding)
(Firefox bug 661876)。应当使用File.name
、Blob.size
,和FileReader
的方法来代替。
参见
- 如何在 Web 应用程序中使用文件
FileReader
- 在 chrome 代码中使用 DOM File API 读取文件(适用于被授权在 Gecko 中运行的代码,例如 Firefox 拓展的代码)