From 57e8ed4c8b21e832a48c0c8cd5a2d4fd54d686eb Mon Sep 17 00:00:00 2001 From: Jason Ren <40999116+jasonren0403@users.noreply.github.com> Date: Wed, 18 Sep 2024 18:19:46 +0800 Subject: [PATCH 1/7] [zh-cn] Update html attribute accept --- .../zh-cn/web/html/attributes/accept/index.md | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 files/zh-cn/web/html/attributes/accept/index.md diff --git a/files/zh-cn/web/html/attributes/accept/index.md b/files/zh-cn/web/html/attributes/accept/index.md new file mode 100644 index 00000000000000..b6239e70f191ca --- /dev/null +++ b/files/zh-cn/web/html/attributes/accept/index.md @@ -0,0 +1,155 @@ +--- +title: HTML 属性:accept +slug: Web/HTML/Attributes/accept +l10n: + sourceCommit: 067a40e4ed27ea6e1f3b8bbfec15cd9dc3078f4c +--- + +{{HTMLSidebar}} + +**`accept`** 属性的值是一个以逗号分隔的列表,其中包含一个或多个文件类型,或[唯一文件类型标识符](#唯一文件类型标识符),说明允许的文件类型。 + +{{EmbedInteractiveExample("pages/tabbed/attribute-accept.html", "tabbed-shorter")}} + +## 概述 + +accept 是 {{HTMLElement("input/file", "file")}} {{htmlelement("input")}} 类型的属性。{{htmlelement("form")}} 元素曾经支持这个属性,但已被移除,改用 {{HTMLElement("input/file", "file")}}。 + +由于一种给定的文件类型可以用多种方式识别,因此在需要特定类型的文件时,提供一套完整的类型说明是非常有用的,或者使用通配符来表示任何格式的类型都是可以接受的。 + +例如,有多种方法可以识别 Microsoft Word 文件,因此接受 Word 文件的网站可能会使用像这样的 ``: + +```html + +``` + +而如果接受的是媒体文件,可能希望包含该媒体类型的任何格式: + +```html + + + +``` + +`accept` 属性并不验证所选文件的类型;它为浏览器提供提示,引导用户选择正确的文件类型。用户仍然有可能(在大多数情况下)在文件选择器中切换一个选项,从而覆盖此选项并选择任何他们想要的文件,然后选择不正确的文件类型。 + +因此,应确保服务器端验证预期需求。 + +## 示例 + +当设置为文件输入类型时,打开的本地文件选择器只能选择正确文件类型的文件。大多数操作系统会淡化不符合标准的文件,使其无法选择。 + +```html +

+ + +

+

+ + +

+

+ + +

+``` + +{{EmbedLiveSample('示例', '100%', 200)}} + +请注意,最后一个示例允许你选择多个图像。参见 [`multiple`](/zh-CN/docs/Web/HTML/Element/input#multiple) 属性以了解更多信息。 + +## 唯一文件类型标识符 + +**唯一文件类型标识符**是一个字符串,用于描述用户可在 `file` 类型的 {{HTMLElement("input")}} 元素中选择的文件类型。每个唯一文件类型指定符可以是以下形式之一: + +- 一个以点号(“.”)字符开头的,大小写不敏感的文件扩展名。如:`.jpg`、`.pdf` 或 `.doc`。 +- 一个有效的 MIME 类型字符串,不带扩展名。 +- 字符串 `audio/*` 表示“任何音频文件”。 +- 字符串 `video/*` 表示“任何视频文件”。 +- 字符串 `image/*` 表示“任何图像文件”。 + +## 使用 file 输入 + +### 基本示例 + +```html +
+
+ + +
+
+ +
+
+``` + +```css hidden +div { + margin-bottom: 10px; +} +``` + +这产生了如下输出: + +{{EmbedLiveSample('基本示例', 650, 60)}} + +> [!NOTE] +> 你也可以在 GitHub 上找到该示例——查看[源代码](https://github.com/mdn/learning-area/blob/main/html/forms/file-examples/simple-file.html),或尝试[在线运行它](https://mdn.github.io/learning-area/html/forms/file-examples/simple-file.html)。 + +无论用户使用何种设备或操作系统,file 输入都会提供一个按钮,打开文件选择对话框,让用户选择文件。 + +如上所示,包含 [`multiple`](/zh-CN/docs/Web/HTML/Element/input#multiple) 属性可指定同时选择多个文件。用户可以根据平台允许的方法(如按下 ShiftControl,然后单击)从文件选择器中选择多个文件。如果你只想让用户从每个 `` 中选择单个文件,省略 `multiple` 属性。 + +### 限制所接受的文件类型 + +通常情况下,你不希望用户任意选择文件类型,而是希望他们选择特定类型的文件。例如,如果你的 file 输入让用户上传个人资料图片,你可能希望他们选择网络兼容的图片格式,如 {{Glossary("JPEG")}} 或 {{Glossary("PNG")}}。 + +可接受的文件类型可通过 [`accept`](/zh-CN/docs/Web/HTML/Element/input/file#accept) 属性指定,该属性使用逗号分隔的列表,列出允许的文件扩展名或 MIME 类型。举例如下: + +- `accept="image/png"` 或 `accept=".png"`——接受 PNG 文件 +- `accept="image/png, image/jpeg"` 或 `accept=".png, .jpg, .jpeg"`——接受 PNG 或 JPEG 文件。 +- `accept="image/*"`——接收任何具有 `image/*` MIME 类型的文件。(很多移动端设备在使用此属性时也会让用户使用照相机拍照。) +- `accept=".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"`——接受任何看起来像 MS Word 文档的东西。 + +我们来看一个更加完整的例子: + +```html +
+
+ + +
+
+ +
+
+``` + +```css hidden +div { + margin-bottom: 10px; +} +``` + +{{EmbedLiveSample('限制所接受的文件类型', 650, 60)}} + +## 规范 + +{{Specifications}} + +## 浏览器兼容性 + +{{Compat}} + +## 参见 + +- [在 web 应用中使用文件](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications) +- [File API](/zh-CN/docs/Web/API/File) From 6573d08c3c942ae42b346723fa0ee29fd3ba14a2 Mon Sep 17 00:00:00 2001 From: Jason Ren <40999116+jasonren0403@users.noreply.github.com> Date: Thu, 19 Sep 2024 11:15:19 +0800 Subject: [PATCH 2/7] Apply suggestions from code review Co-authored-by: A1lo --- files/zh-cn/web/html/attributes/accept/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/files/zh-cn/web/html/attributes/accept/index.md b/files/zh-cn/web/html/attributes/accept/index.md index b6239e70f191ca..33adea769058a9 100644 --- a/files/zh-cn/web/html/attributes/accept/index.md +++ b/files/zh-cn/web/html/attributes/accept/index.md @@ -15,9 +15,9 @@ l10n: accept 是 {{HTMLElement("input/file", "file")}} {{htmlelement("input")}} 类型的属性。{{htmlelement("form")}} 元素曾经支持这个属性,但已被移除,改用 {{HTMLElement("input/file", "file")}}。 -由于一种给定的文件类型可以用多种方式识别,因此在需要特定类型的文件时,提供一套完整的类型说明是非常有用的,或者使用通配符来表示任何格式的类型都是可以接受的。 +由于一种给定的文件类型可以用多种方式标识,因此在需要特定类型的文件时,提供一套完整的类型说明是非常有用的,或者使用通配符来表示任何格式的类型也是可以接受的。 -例如,有多种方法可以识别 Microsoft Word 文件,因此接受 Word 文件的网站可能会使用像这样的 ``: +例如,有多种方法可以标识 Microsoft Word 文件,因此接受 Word 文件的网站可能会使用像这样的 ``: ```html Shift 或 Control,然后单击)从文件选择器中选择多个文件。如果你只想让用户从每个 `` 中选择单个文件,省略 `multiple` 属性。 +如上所示,包含 [`multiple`](/zh-CN/docs/Web/HTML/Element/input#multiple) 属性可指定同时选择多个文件。用户可以根据平台允许的方法(如按下 ShiftControl,然后单击)从文件选择器中选择多个文件。如果你只想让用户从每个 `` 中选择单个文件,请省略 `multiple` 属性。 ### 限制所接受的文件类型 -通常情况下,你不希望用户任意选择文件类型,而是希望他们选择特定类型的文件。例如,如果你的 file 输入让用户上传个人资料图片,你可能希望他们选择网络兼容的图片格式,如 {{Glossary("JPEG")}} 或 {{Glossary("PNG")}}。 +通常情况下,你不希望用户选择任意的文件类型,而是希望他们选择特定类型的文件。例如,如果你的 file 输入让用户上传个人资料图片,你可能希望他们选择 web 兼容的图片格式,如 {{Glossary("JPEG")}} 或 {{Glossary("PNG")}}。 可接受的文件类型可通过 [`accept`](/zh-CN/docs/Web/HTML/Element/input/file#accept) 属性指定,该属性使用逗号分隔的列表,列出允许的文件扩展名或 MIME 类型。举例如下: -- `accept="image/png"` 或 `accept=".png"`——接受 PNG 文件 +- `accept="image/png"` 或 `accept=".png"`——接受 PNG 文件。 - `accept="image/png, image/jpeg"` 或 `accept=".png, .jpg, .jpeg"`——接受 PNG 或 JPEG 文件。 - `accept="image/*"`——接收任何具有 `image/*` MIME 类型的文件。(很多移动端设备在使用此属性时也会让用户使用照相机拍照。) - `accept=".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"`——接受任何看起来像 MS Word 文档的东西。 From 1dae89618420284452a97106b0eb878712790a0a Mon Sep 17 00:00:00 2001 From: Jason Ren <40999116+jasonren0403@users.noreply.github.com> Date: Thu, 19 Sep 2024 11:20:19 +0800 Subject: [PATCH 3/7] Update index.md --- files/zh-cn/web/html/attributes/accept/index.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/files/zh-cn/web/html/attributes/accept/index.md b/files/zh-cn/web/html/attributes/accept/index.md index 33adea769058a9..6a6465948d418c 100644 --- a/files/zh-cn/web/html/attributes/accept/index.md +++ b/files/zh-cn/web/html/attributes/accept/index.md @@ -44,16 +44,13 @@ accept 是 {{HTMLElement("input/file", "file")}} {{htmlelement("input")}} 类型 ```html

- - +

- - +

- - +

``` From 72362af911c9583b45e651d78f625e72c67fab11 Mon Sep 17 00:00:00 2001 From: Jason Ren <40999116+jasonren0403@users.noreply.github.com> Date: Thu, 19 Sep 2024 11:22:51 +0800 Subject: [PATCH 4/7] Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- files/zh-cn/web/html/attributes/accept/index.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/files/zh-cn/web/html/attributes/accept/index.md b/files/zh-cn/web/html/attributes/accept/index.md index 6a6465948d418c..20670aa02d4496 100644 --- a/files/zh-cn/web/html/attributes/accept/index.md +++ b/files/zh-cn/web/html/attributes/accept/index.md @@ -44,13 +44,16 @@ accept 是 {{HTMLElement("input/file", "file")}} {{htmlelement("input")}} 类型 ```html

- +

- +

- +

``` From cd16b670154e14b9f682ec8f38dd7234af5a968a Mon Sep 17 00:00:00 2001 From: Jason Ren <40999116+jasonren0403@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:35:58 +0800 Subject: [PATCH 5/7] Update index.md --- files/zh-cn/web/html/attributes/accept/index.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/files/zh-cn/web/html/attributes/accept/index.md b/files/zh-cn/web/html/attributes/accept/index.md index 20670aa02d4496..20bae27dd3a331 100644 --- a/files/zh-cn/web/html/attributes/accept/index.md +++ b/files/zh-cn/web/html/attributes/accept/index.md @@ -78,8 +78,7 @@ accept 是 {{HTMLElement("input/file", "file")}} {{htmlelement("input")}} 类型 ```html
- - +
@@ -120,8 +119,7 @@ div { ```html
- - 选择要上传的文件 Date: Thu, 19 Sep 2024 14:38:54 +0800 Subject: [PATCH 6/7] Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- files/zh-cn/web/html/attributes/accept/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/files/zh-cn/web/html/attributes/accept/index.md b/files/zh-cn/web/html/attributes/accept/index.md index 20bae27dd3a331..b2b712778ef083 100644 --- a/files/zh-cn/web/html/attributes/accept/index.md +++ b/files/zh-cn/web/html/attributes/accept/index.md @@ -78,7 +78,8 @@ accept 是 {{HTMLElement("input/file", "file")}} {{htmlelement("input")}} 类型 ```html
- +
@@ -119,7 +120,8 @@ div { ```html
- 选择要上传的文件 Date: Thu, 19 Sep 2024 16:45:27 +0800 Subject: [PATCH 7/7] Update files/zh-cn/web/html/attributes/accept/index.md Co-authored-by: Jason Ren <40999116+jasonren0403@users.noreply.github.com> --- files/zh-cn/web/html/attributes/accept/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/html/attributes/accept/index.md b/files/zh-cn/web/html/attributes/accept/index.md index b2b712778ef083..4ef22cfc4ce8fd 100644 --- a/files/zh-cn/web/html/attributes/accept/index.md +++ b/files/zh-cn/web/html/attributes/accept/index.md @@ -7,7 +7,7 @@ l10n: {{HTMLSidebar}} -**`accept`** 属性的值是一个以逗号分隔的列表,其中包含一个或多个文件类型,或[唯一文件类型标识符](#唯一文件类型标识符),说明允许的文件类型。 +**`accept`** 属性的值是一个以逗号分隔的列表,其中包含一个或多个文件类型/[唯一文件类型标识符](#唯一文件类型标识符)(描述了允许的文件类型)。 {{EmbedInteractiveExample("pages/tabbed/attribute-accept.html", "tabbed-shorter")}}