前端/移动开发面试题更新 2026-08-05

请阐述在前端实现文件断点续传的思路与具体步骤,同时说明如何保障大文件上传过程的安全性与可靠性?

前端/移动开发性能优化安全意识系统设计JavaScript

考察说明

考察对前端大文件上传及断点续传机制的理解,以及方案设计能力。

回答思路

  1. 【回答框架 1】断点续传的核心思想是分片上传,将大文件切割为多个小分片,逐个上传,记录已上传分片,在中断后仅上传未完成的分片。实现时,需生成文件的唯一标识(如基于内容哈希),并提供查询已上传分片状态的接口。
  2. 【回答框架 2】前端实现要点:使用 File API 的 slice 方法进行分片,利用并发控制(如限制同时上传的分片数)提高效率;上传进度可通过 XMLHttpRequest 的 progress 事件获取;为应对网络异常,需实现重试机制,并对上传失败的片进行标记。
  3. 【回答框架 3】后端配合:需提供分片上传接口、合并分片接口、以及查询分片状态的接口。合并时可使用临时目录存储分片,全部上传完成后再合并。为保障安全,应对文件类型、大小进行校验,可对分片进行哈希校验,防止数据损坏。
  4. 【回答框架 4】可靠性保障:关键是分片的完整性校验,对每个分片计算哈希(如 MD5),上传时携带校验值,后端校验通过后才标记完成;另外,合并时需校验整个文件的哈希,确保文件完整。
  5. 【回答框架 5】整体方案还需考虑断点恢复的持久化:将已上传分片信息存储在服务端(如数据库、Redis),前端通过接口获取未上传分片列表。对于大文件,还要考虑内存管理,避免一次性读取过大文件。
  6. 【关键点 1】断点续传依赖分片上传,分片大小需平衡网络效率和并发数。
  7. 【关键点 2】必须实现分片哈希校验,防止数据丢失或篡改。
  8. 【关键点 3】服务端需提供查询分片状态接口,前端据此恢复上传。
  9. 【易错点 1】仅依赖前端记录已上传分片列表,刷新页面或换设备后无法恢复。
  10. 【易错点 2】不进行哈希校验,可能因网络问题导致分片数据损坏,最终合并文件损坏。
  11. 【易错点 3】并发上传分片数过多可能导致网络拥塞或服务器压力过大。