JavaScript 文件上传核心是 File API 与 FormData 配合 fetch/XHR:通过 input[type=file] 获取 FileList,用 FileReader 异步读取内容,再以 FormData 提交至后端,并校验类型、大小及错误处理。

文件上传在 JavaScript 中主要靠 File API 和 FormData 配合 fetch 或 XMLHttpRequest 实现,核心是让用户选中文件、读取元数据或内容、再发给后端。
获取用户选择的文件
通过 <input type="file"> 获取文件列表,files 属性返回 FileList 对象(类似数组):
- 单文件:用
input.files[0];多文件需遍历input.files -
File是Blob的子类,自带name、size、type、lastModified等属性 - 监听
change事件,避免重复提交或未触发
预览图片或读取文件内容
用 FileReader 异步读取文件内容,适合预览、校验或转 Base64:
-
readAsDataURL(file)→ 得到 data URL,可直接赋给<img src alt="如何实现文件上传_javascript中文件API如何使用?" > -
readAsText(file, encoding)→ 读文本文件(如 JSON、CSV) -
readAsArrayBuffer(file)→ 适合二进制处理或大文件分片 - 注意:
FileReader是异步的,用onload拿结果,onerror处理失败
构造请求上传到服务器
推荐用 FormData 包装文件,自动设置 Content-Type: multipart/form-data:
标签: javascript java html js json app 后端 csv stream
还木有评论哦,快来抢沙发吧~