在 web 应用程序中使用文件

在 web 应用程序中使用文件

访问被选择的文件

考虑这段 HTML 代码:

html

通过文件 API,我们可以访问 FileList,它包含了表示用户所选文件的 File 对象。

input 元素的 multiple 属性允许用户选择多个文件。

使用传统的 DOM 选择器访问一个被选择的文件:

jsconst selectedFile = document.getElementById("input").files[0];

通过 change 事件访问被选择的文件

可以(但不是强制的)通过 change 事件访问 FileList。你需要使用 EventTarget.addEventListener() 添加 change 事件的处理器,像这样:

jsconst inputElement = document.getElementById("input");

inputElement.addEventListener("change", handleFiles, false);

function handleFiles() {

const fileList = this.files; /* 现在你可以处理文件列表 */

}

获取被选择文件的信息

DOM 提供的 FileList 对象列出了用户选择的所有文件,每个文件都被指定为一个 File 对象。你可以通过检查文件列表的 length 属性值来确定用户选择了多少个文件:

jsconst numFiles = files.length;

可以像数组一样简单地访问文件列表来检索各个 File 对象。

File 对象提供了三个属性,包含了关于文件的有用信息。

name

文件名称,只读字符串。只包含文件名,不包含任何路径信息。

size

以字节数为单位的文件大小,只读的 64 位整数。

type

文件的 MIME 类型,只读字符串,当类型不能确定时为 ""。

示例:显示文件大小

下面的例子展示了 size 属性的一种可能用法:

html

文件大小

0

0

通过 click() 方法使用隐藏的文件 input 元素

你可以隐藏公认难看的文件 元素并显示你自己的界面来打开文件选择器,然后显示哪个或哪些文件被用户选中了。你可以通过给 input 元素添加 display:none 的样式,再调用 元素的 click() 方法来实现。

考虑这段 HTML 代码:

html

type="file"

id="fileElem"

multiple

accept="image/*"

style="display:none" />

处理 click 事件的代码类似于这样:

jsconst fileSelect = document.getElementById("fileSelect");

const fileElem = document.getElementById("fileElem");

fileSelect.addEventListener(

"click",

(e) => {

if (fileElem) {

fileElem.click();

}

},

false,

);

你可以给这个用来打开文件选择器的

相关推荐

一斤酒跟一斤水哪个重?
be365

一斤酒跟一斤水哪个重?

📅 06-30 👁️ 4359
狗熊最怕什么东西,主要有三种
be365

狗熊最怕什么东西,主要有三种

📅 09-20 👁️ 3240
拉稀是黑色的怎么回事
365betappios

拉稀是黑色的怎么回事

📅 06-28 👁️ 3555
定发喷雾可以带上飞机吗?
be365

定发喷雾可以带上飞机吗?

📅 10-13 👁️ 4017
兰之阁怎么样,兰之阁报价,兰之阁
be365

兰之阁怎么样,兰之阁报价,兰之阁

📅 01-24 👁️ 2668
信用宝借款靠谱吗?真实使用体验与优缺点解析
beat365英超欧冠平台

信用宝借款靠谱吗?真实使用体验与优缺点解析

📅 01-05 👁️ 2913