Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[zh-cn]: sync translation for File and File() #20433

Merged
merged 4 commits into from
May 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 21 additions & 14 deletions files/zh-cn/web/api/file/file/index.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,42 @@
---
title: File.File()
title: FileFile() 构造函数
slug: Web/API/File/File
l10n:
sourceCommit: 8fd2ee72038310e3ecc387df235ffac1cb08775c
---

{{APIRef("File")}}
{{APIRef("File API")}}{{AvailableInWorkers}}

**`File()`** 构造器创建新的 {{domxref("File")}} 对象实例。
**`File()`** 构造函数创建新的 {{domxref("File")}} 对象实例。

## 语法

```plain
var myFile = new File(bits, name[, options]);
```js-nolint
new File(fileBits, fileName)
new File(fileBits, fileName, options)
```

### 参数

- _bits_
- : 一个包含{{jsxref("ArrayBuffer")}},{{domxref("ArrayBufferView")}},{{domxref("Blob")}},或者 {{domxref("DOMString")}} 对象的 {{jsxref("Array")}} — 或者任何这些对象的组合。这是 UTF-8 编码的文件内容
- _name_
- : {{domxref("USVString")}},表示文件名称,或者文件路径
- _options_ {{optional_inline}}
- `fileBits`
- : 一个[可迭代](/zh-CN/docs/Web/JavaScript/Reference/Iteration_protocols#可迭代协议)对象,例如一个具有 {{jsxref("ArrayBuffer")}}、{{jsxref("TypedArray")}}、{{jsxref("DataView")}}{{domxref("Blob")}}、字符串或任何此类元素的组合的{{jsxref("Array", "数组", "", 1)}},将被放入 {{domxref("File")}} 内。请注意,这里的字符串被编码为 UTF-8,与通常的 JavaScript UTF-16 字符串不同
- `fileName`
- : 表示文件名或文件路径的字符串
- `options` {{optional_inline}}

- : 选项对象,包含文件的可选属性。可用的选项如下
- : 包含文件可选属性的选项对象。可用选项如下

- `type`: {{domxref("DOMString")}},表示将要放到文件中的内容的 MIME 类型。默认值为 `""` 。
- `lastModified`: 数值,表示文件最后修改时间的 Unix 时间戳(毫秒)。默认值为 {{jsxref("Date.now()")}}。
- `type` {{optional_inline}}
- : 表示将放入文件的内容的 MIME 类型的字符串。默认值为 `""`。
- `endings` {{optional_inline}}
- : 如果数据是文本,如何解释内容中的换行符(`\n`)。默认值 `transparent` 将换行符复制到 blob 中而不更改它们。要将换行符转换为主机系统的本机约定,指定值为 `native`。
- `lastModified` {{optional_inline}}
- : 一个数字,表示 Unix 时间纪元与文件上次修改时间之间的毫秒数。默认值为调用 {{jsxref("Date.now()")}} 返回的值。

## 示例

```js
var file = new File(["foo"], "foo.txt", {
const file = new File(["foo"], "foo.txt", {
type: "text/plain",
});
```
Expand Down
62 changes: 23 additions & 39 deletions files/zh-cn/web/api/file/index.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,43 @@
---
title: File
slug: Web/API/File
l10n:
sourceCommit: 467508d83e320be0680f334c3455d3cc232bce42
---

{{APIRef}}
{{APIRef("File API")}}{{AvailableInWorkers}}

文件(**`File`**接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。
**`File`** 接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。

通常情况下, `File` 对象是来自用户在一个 {{HTMLElement("input")}} 元素上选择文件后返回的 {{domxref("FileList")}} 对象,也可以是来自由拖放操作生成的 {{domxref("DataTransfer")}} 对象,或者来自 {{domxref("HTMLCanvasElement")}} 上的 `mozGetAsFile`() API。在 Gecko 中,特权代码可以创建代表任何本地文件的 File 对象,而无需用户交互(有关详细信息,请参阅[注意事项](#注意事项)
`File` 对象通常从用户使用 {{HTMLElement("input")}} 元素选择文件返回的 {{DOMxRef("FileList")}} 对象中检索,或者从拖放操作返回的 {{DOMxRef("DataTransfer")}} 对象中检索

`File` 对象是特殊类型的 {{domxref("Blob")}},且可以用在任意的 Blob 类型的 context 中。比如说, {{domxref("FileReader")}}, {{domxref("URL.createObjectURL()")}}, {{domxref("ImageBitmapFactories.createImageBitmap()", "createImageBitmap()")}}, 及 {{domxref("XMLHttpRequest", "", "send()")}} 都能处理 `Blob` `File`。
`File` 对象是一种特定类型的 {{DOMxRef("Blob")}},并且可以在 Blob 可以使用的任何上下文中使用。特别是,{{DOMxRef("FileReader")}}、{{DOMxRef("URL.createObjectURL_static", "URL.createObjectURL()")}}、{{DOMxRef("createImageBitmap()")}}、{{domxref("fetch()")}} 方法的 [`body`](/zh-CN/docs/Web/API/fetch#body) 选项和 {{DOMxRef("XMLHttpRequest", "", "send( )")}} 都可以接收 `Blob` 对象和 `File` 对象

参考 [从 Web 应用程序使用文件](/zh-CN/docs/Using_files_from_web_applications) 了解更多信息和例子。
参见[在 Web 应用程序使用文件](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications)了解更多信息和例子。

{{InheritanceDiagram}}

## 构造函数

- {{domxref("File.File", "File()")}}
- : 返回一个新构建的文件对象(`File`)。

## 属性
- : 返回一个新构建的 `File` 对象。

`File` 接口也继承了 {{domxref("Blob")}} 接口的属性:
## 实例属性

- {{domxref("File.lastModified")}} {{readonlyinline}}
- : 返回当前 `File` 对象所引用文件最后修改时间,自 UNIX 时间起始值(1970 年 1 月 1 日 00:00:00 UTC)以来的毫秒数。
- {{domxref("File.lastModifiedDate")}} {{readonlyinline}} {{deprecated_inline}}
- : 返回当前 `File` 对象所引用文件最后修改时间的 [`Date`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date) 对象。
- {{domxref("File.name")}} {{readonlyinline}}
- : 返回当前 `File` 对象所引用文件的名字。
- {{domxref("File.size")}} {{readonlyinline}}
- : 返回文件的大小。
- {{domxref("File.webkitRelativePath")}} {{readonlyinline}} {{non-standard_inline}}
- : 返回 {{domxref("File")}} 相关的 path 或 URL。
- {{domxref("Blob.type")}} {{readonlyinline}}
- : 返回文件的 [多用途互联网邮件扩展类型(MIME Type)](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)
_`File` 接口还继承了 {{DOMxRef("Blob")}} 接口的属性。_

## 方法
- {{DOMxRef("File.lastModified")}} {{ReadOnlyInline}}
- : 返回文件的最后修改时间,以 UNIX 纪元(1970 年 1 月 1 日午夜)以来的毫秒为单位。
- {{DOMxRef("File.lastModifiedDate")}} {{Deprecated_Inline}} {{ReadOnlyInline}} {{Non-standard_Inline}}
- : 返回 `File` 对象引用的文件的最后修改时间的 {{JSxRef("Date")}}。
- {{DOMxRef("File.name")}} {{ReadOnlyInline}}
- : 返回 `File` 对象引用的文件的名称。
- {{DOMxRef("File.webkitRelativePath")}} {{ReadOnlyInline}}
- : 返回 `File` 对象相对于 URL 的路径。

_`File` 接口没有定义任何方法,但是它从 {{domxref("Blob")}} 接口继承了以下方法:_
## 实例方法

- {{domxref("Blob.slice()", "Blob.slice([start[, end[, contentType]]])")}}
- : 返回一个新的 `Blob` 对象,它包含有源 `Blob` 对象中指定范围内的数据。
_`File` 接口还继承了 {{DOMxRef("Blob")}} 接口的方法。_

## 规范

Expand All @@ -50,20 +47,7 @@ _`File` 接口没有定义任何方法,但是它从 {{domxref("Blob")}} 接口

{{Compat}}

### 注意事项

- 在 Gecko 中,你可以从 Chrome 代码中使用这个 API。详细内容参见 [Using the DOM File API in chrome code](/zh-CN/docs/Extensions/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` 对象和 {{domxref("Blob")}} 相反,使用第二个参数作为文件名。文件名可以是任意的字符串。

```plain
new File( Array parts, String filename, BlobPropertyBag properties);
```

- 下列非标准属性及方法在 Gecko 7 中就被移除了:{{domxref("File.fileName")}}、{{domxref("File.fileSize")}}、{{domxref("File.getAsBinary()")}}、{{domxref("File.getAsDataURL()")}}、{{domxref("File.getAsText()","File.getAsText(string encoding)")}} ([Firefox bug 661876](https://bugzil.la/661876))。应当使用 {{domxref("File.name")}}、{{domxref("Blob.size")}},和 {{domxref("FileReader")}} 的方法来代替。

## 参见

- [如何在 Web 应用程序中使用文件](/zh-CN/docs/Using_files_from_web_applications)
- [ Web 应用程序中使用文件](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications)
- {{domxref("FileReader")}}
- [在 chrome 代码中使用 DOM File API 读取文件](/zh-CN/docs/Extensions/Using_the_DOM_File_API_in_chrome_code)(适用于被授权在 Gecko 中运行的代码,例如 Firefox 拓展的代码)