0

0

如何操作文件_JavaScript中File API的基本用法是什么

夢幻星辰

夢幻星辰

发布时间:2026-01-05 12:46:02

|

418人浏览过

|

来源于php中文网

原创

File API仅支持用户主动选择的文件只读访问,无法操作磁盘任意路径;通过监听input的change事件获取FileList,用FileReader异步读取内容,支持text、dataURL、ArrayBuffer三种模式,无写入能力。

如何操作文件_javascript中file api的基本用法是什么

File API 不能直接操作磁盘文件,它只提供对用户通过 或拖放选中的文件的只读访问能力。你无法用它读写任意路径(比如 C:\data.txt),也不能绕过用户授权去读取本地文件系统。

如何获取用户选择的文件对象

最常见入口是监听 input 元素的 change 事件,从 event.target.files 中拿到 FileList

  • FileList 类似数组,但不是真正的 Array,需用 Array.from() 或展开运算符转成数组才能用 map/forEach
  • 单文件上传时常用 files[0];多文件则遍历 files
  • 若用户取消选择,files.length0,需做空检查
const input = document.querySelector('input[type="file"]');
input.addEventListener('change', (e) => {
  const file = e.target.files[0];
  if (!file) return;
  console.log(file.name, file.size, file.type); // name 是文件名(不含路径),size 单位字节,type 是 MIME 类型
});

如何读取文件内容:FileReader 的三种常用模式

FileReader 是核心读取器,所有读取都异步,靠事件驱动。别用同步方式——它不支持。

  • readAsText(file, encoding):适合文本文件,encoding 默认 "UTF-8"中文乱码多半是这里没指定或错设为 "ASCII"
  • readAsDataURL(file):返回 data: URL,适合预览图片,但大文件会撑爆内存(base64 膨胀约 33%)
  • readAsArrayBuffer(file):读成二进制原始数据,适合处理音视频、PDF 或后续用 TextDecoder/Uint8Array 自定义解析
const reader = new FileReader();
reader.onload = () => {
  console.log(reader.result); // 文本内容 / data URL / ArrayBuffer
};
reader.onerror = () => {
  console.error('读取失败:', reader.error?.message);
};
reader.readAsText(file, 'UTF-8');

如何处理读取完成后的数据流

reader.onload 触发时,reader.result 类型取决于调用的 readAs* 方法,不能混用判断逻辑。

Cutout.Pro
Cutout.Pro

AI驱动的视觉设计平台

下载

立即学习Java免费学习笔记(深入)”;

  • readAsTextresultstring,可直接 .split('\n') 行处理
  • readAsDataURLresult 是字符串,可赋给 如何操作文件_JavaScript中File API的基本用法是什么 预览
  • readAsArrayBufferresultArrayBuffer,需转 Uint8Array 才能逐字节访问,例如校验文件头(magic number)
// 检查是否为 PNG(前 8 字节固定)
const uint8 = new Uint8Array(reader.result);
if (uint8[0] === 0x89 && uint8[1] === 0x50 && uint8[2] === 0x4E && uint8[3] === 0x47) {
  console.log('是 PNG');
}

真正容易被忽略的是:File API 没有“写入”能力,也没有“列出目录”或“删除文件”接口。所有“操作文件”的想象,必须拆解为“用户选中 → 浏览器读取 → 前端处理 → 发送到后端保存”这四步。跨域、大文件分片、进度反馈这些,都得自己补全逻辑。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

314

2023.08.02

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1437

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

227

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

85

2025.10.17

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

39

2025.12.04

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

253

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

206

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1437

2023.10.24

漫蛙2入口地址合集
漫蛙2入口地址合集

本专题整合了漫蛙2入口汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 3.3万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号