当前位置: 首页 > wzjs >正文

使用模板怎么建站wordpress模板网站模板

使用模板怎么建站,wordpress模板网站模板,天元建设集团名声,看国外网站如何做科普前端文件处理与浏览器存储机制实践 🎯 一、文件处理为何重要? 现代 Web 应用中文件处理场景非常广泛: 上传头像/简历/Excel 等文件图片压缩、预览、转码(Base64、Blob)大文件切片上传与断点续传读取本地文件内容&…

前端文件处理与浏览器存储机制实践


🎯 一、文件处理为何重要?

现代 Web 应用中文件处理场景非常广泛:

  • 上传头像/简历/Excel 等文件
  • 图片压缩、预览、转码(Base64、Blob)
  • 大文件切片上传与断点续传
  • 读取本地文件内容(如 .csv、.xlsx)
  • 下载文件并自动命名

这些场景都考验前端对浏览器 File API、Blob、FormData、Storage API 等底层能力的掌握


🧠 二、浏览器文件处理 API 一览

API作用
File文件对象(通常来源于 <input type="file">
FileReader读取文件内容为文本、URL、ArrayBuffer
Blob二进制数据对象,常用于生成文件下载
FormData构建带文件的 multipart/form-data 请求
URL.createObjectURL()创建 blob 链接用于图片预览、下载等

📂 三、文件上传:获取 + 预览 + 上传流程

1️⃣ 获取文件对象

<input type="file" id="fileInput" />
const input = document.getElementById('fileInput');
input.addEventListener('change', (e) => {const file = e.target.files[0];console.log('文件名:', file.name);
});

2️⃣ 图片预览:使用 Blob URL

const imgUrl = URL.createObjectURL(file);
document.getElementById('preview').src = imgUrl;

✅ 别忘了销毁 URL,避免内存泄漏:

URL.revokeObjectURL(imgUrl);

3️⃣ 上传文件:使用 FormData

const formData = new FormData();
formData.append('file', file);fetch('/api/upload', {method: 'POST',body: formData
});

✂️ 四、大文件分片上传 + 秒传机制

📦 为什么要切片上传?

  • 避免大文件拖慢上传速度甚至失败
  • 支持断点续传、重试机制
  • 支持秒传(MD5 检测已有文件)

🧩 分片核心思路:

const chunkSize = 1 * 1024 * 1024; // 1MB
const file = input.files[0];
const chunks = [];for (let i = 0; i < file.size; i += chunkSize) {chunks.push(file.slice(i, i + chunkSize));
}

每一片上传时携带 fileId + chunkIndex,后端完成后再合并切片。


📤 五、浏览器文件下载机制(Blob 下载)

const blob = new Blob(['Hello world'], { type: 'text/plain' });
const url = URL.createObjectURL(blob);const a = document.createElement('a');
a.href = url;
a.download = 'hello.txt';
a.click();URL.revokeObjectURL(url);

✅ 可下载后端返回的二进制流(如 Excel、PDF 等):

fetch('/api/export').then(res => res.blob()).then(blob => {const link = document.createElement('a');link.href = URL.createObjectURL(blob);link.download = 'report.xlsx';link.click();});

🗃 六、浏览器本地存储机制对比

存储方式容量限制特点应用场景
localStorage~5MB同源永久存储,页面刷新不丢失保存用户设置、登录状态
sessionStorage~5MB同源 + 同窗口,关闭即失效临时状态保存(如表单草稿)
IndexedDB上限为硬盘容量支持对象存储、索引、事务本地缓存海量数据、离线图书馆
cookie~4KB每次请求自动带上,支持跨域设置会话状态、权限管理

🛠 七、存储常见技巧

✅ 本地存储封装工具

const Storage = {get(key: string) {try {return JSON.parse(localStorage.getItem(key) || '');} catch {return null;}},set(key: string, value: any) {localStorage.setItem(key, JSON.stringify(value));},remove(key: string) {localStorage.removeItem(key);}
};

🧪 八、面试高频问题拆解

📌 Q1:文件上传为什么要用 FormData?可以用 JSON 吗?

答:FormData 支持构建 multipart/form-data 类型请求,适用于文件上传。而 JSON 无法直接包含 File 或二进制数据,需手动处理转码和边界,效率低下。

📌 Q2:如何实现大文件分片上传与断点续传?

答:

  • 使用 slice() 方法按固定大小分片;
  • 每一片上传携带标识(fileId, chunkIndex);
  • 后端提供合并接口;
  • 可将已上传片段记录到本地/IndexedDB 以支持断点续传。

📌 Q3:localStorage 和 IndexedDB 区别?

对比点localStorageIndexedDB
数据结构键值对(字符串)支持对象、索引、事务控制
容量几 MBGB 级别
异步是(支持 Promise 接口)
应用简单用户设置、缓存小内容离线缓存系统、图片、文件、日志

✅ 总结

技术点关键要素
文件处理获取 File、预览 Blob、读取 FileReader
大文件上传切片 + 合并 + 秒传识别(MD5)
本地存储localStorage / session / IndexedDB
文件下载Blob + URL.createObjectURL

掌握这些底层浏览器 API 的应用,不仅能提升你的业务实现能力,也是在面试中体现“基础扎实 + 能解决真实问题”的重要体现。


文章转载自:

http://e2OIEBWK.rsqpc.cn
http://6afl3LEz.rsqpc.cn
http://5XUWw6op.rsqpc.cn
http://mdbLy0ZT.rsqpc.cn
http://VPoTPat9.rsqpc.cn
http://ln3ah2LF.rsqpc.cn
http://WnKh8g2L.rsqpc.cn
http://WBAn50Ec.rsqpc.cn
http://aJ4RYfPE.rsqpc.cn
http://nSAoCv2f.rsqpc.cn
http://IpisNF11.rsqpc.cn
http://WhkjUorp.rsqpc.cn
http://YQ7xoelh.rsqpc.cn
http://slCmEuEe.rsqpc.cn
http://Awz4ALN2.rsqpc.cn
http://FG8axRCo.rsqpc.cn
http://U5GGyZlg.rsqpc.cn
http://GwsRMYJt.rsqpc.cn
http://2200eqzp.rsqpc.cn
http://ucnRE2D5.rsqpc.cn
http://WhJtC12a.rsqpc.cn
http://IYy3ygEA.rsqpc.cn
http://SFPD0TQ2.rsqpc.cn
http://OlfSPPHz.rsqpc.cn
http://FUbRRE4y.rsqpc.cn
http://W02tqoNC.rsqpc.cn
http://Ih5v2R6J.rsqpc.cn
http://OZv61VFa.rsqpc.cn
http://zecqHJmE.rsqpc.cn
http://xKb9XJ7w.rsqpc.cn
http://www.dtcms.com/wzjs/602463.html

相关文章:

  • 公司网站如何建立2023二级建造师报名官网入口
  • 福州网站微信公众号建设电子商务网站步骤
  • 软件开发可以做网站么网站提供的服务
  • 如何做信用网站截图怎么制作一份自己的简历
  • 上海专业的网站建设公司哪家好动漫网站策划书
  • 推荐聊城做网站公司做网站费用怎么记账
  • 商城网站怎么做内链seo教程网
  • 中国建设银行网站会员可以改名网站建设的可用性
  • 网站开发好后要做什么在线培训系统搭建方案
  • 交易网站制度建设百度搜索引擎广告位的投放
  • 百度云电脑版网站入口济南智能网站建设电话
  • 网站设计详细设计找施工员在哪个网站上找
  • 广州专业的网站开发公司wordpress音乐代码
  • 东莞市专注网站建设平台西安市做网站公司有哪些
  • 可以做签名链接的网站wordpress关闭手机访问
  • 在线测评网站怎么做百度站长电脑版
  • 360做网站德清县建设银行官方网站
  • 网站开发与维护的内容wordpress 前端注册
  • 做服装外贸的网站设计短网址批量在线生成
  • 自建网站的好处郑州社交网站开发
  • 学校学不到网站建设做外贸什么网站比较好
  • 企业网站导航栏高度盐城做网站公司
  • 河池公司做网站短网址服务平台
  • 网站图片优化怎么做哈尔滨自助建站平台
  • 芜湖建设网站公司网络营销与推广教案
  • 网站开发合作意向协议书seo页面优化公司
  • 移动端网站怎么布局北京网站建设公司价格
  • 电脑网站怎样给网页做适配我想在网站上卖食品怎么做
  • 企业网站管理中心flash网站源文件
  • 网站策划ppt如何在公司系统建网站