首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

大文件分塊上傳:合並塊應由服務端完成而非 ActiveX

     編輯:程式設計綜合問答

架構定位

  • 客戶端 (ActiveX/JS):負責**分片計算、MD5 校驗、並發上傳分片**、斷點續傳邏輯。
  • 服務端:負責**接收分片、臨時存儲、合並驗證、業務入庫**。

理由

  1. 服務端有完整文件系統權限、事務保障、磁盤空間管理。
  2. 客戶端合並需下載所有分片再上傳完整文件,雙倍帶寬、極不靠譜。
  3. ActiveX 權限受限,無法保證大文件寫入性能與原子性。

標準流程

1. 客戶端計算文件 MD5、分片 (如 5MB/片)
2. 上傳前查詢服務端已上傳分片列表 (秒傳/斷點續傳)
3. 並發 POST /upload?chunkIndex=0&chunkTotal=10&fileMd5=xxx
4. 服務端保存分片至臨時目錄 /tmp/uploads/{fileMd5}/
5. 所有分片上傳完成 → 客戶端調用 /merge?fileMd5=xxx
6. 服務端按序合並、校驗 MD5、移動至正式目錄、入庫

結論

服務端合並是行業標準做法 (WebUploader、Plupload、Resumable.js 皆如此),ActiveX 僅作分片上傳客戶端。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved