巨型圖檔上傳機制

機制前提

  • 應用 Client/Server 處理模式 。
  • 後台 (Server) 使用網際網路服務器 ,簡稱:服務器 。
  • 前台 (Client) 使用 Applet 或獨立客戶端程式 ,簡稱:Applet 。   

機制說明

  • 用戶使用 Applet 選取欲上傳之巨型檔案 ,簡稱:檔案。
  • Applet 為每一個 上傳巨型檔案產生 UUID 。
  • Applet 產生一個新檔案紀錄巨型檔案資訊 ,簡稱:檔頭。
  • Applet 將檔案依設定值切割成若干子檔案 ,以 UUID 為檔名 ,以副檔名為序號 ,簡記為:Fi , i=0 .. n-1。
  • Applet 上傳檔頭 ,所有 Fi 。
  • Applet 告知服務器已上傳結束。
  • Applet 詢問服務器是否有缺檔 ,若有缺檔則 Applet 重傳該檔 ,直至無缺檔為止。

檔頭

  • 總共 128 位元長 ,簡稱:區段 。
  • 區段存放 : 
    • UUID
    • 切割設定值 (64KB)
    • 檔案切割份數
    • 檔案副檔名

服務器:輸出 HTML 型態 text/plain

  • 上傳結束服務:傳入(UUID) 傳回(服務器處理 1:成功 0:失敗)
    • 服務器讀取檔頭資訊
    • 服務器核對子檔案個數與長度
    • 若核對子檔案無誤,服務器產生低解析度圖檔
  • 詢問缺檔 :傳入(UUID) 傳回(最小缺檔序號)
    • 服務器讀取檔頭資訊
    • 服務器依序號搜尋子檔案是否存在
    • 若無缺檔 ,且無低解析度圖檔 ,則服務器產生低解析度圖檔