最近項目較為清閑,研究了下html5新增的幾個重要技術點,如操作檔案系統、擷取攝像頭麥克風、本地圖檔預覽、ajax上傳檔案等。靈光一現,我有了一個“墨迹”的想法:通過浏覽器擷取影音資料并實時存儲到本地磁盤上,再接着背景默默上傳該檔案,達到視訊錄像僞實時備份的目的。然而經過兩三天的琢磨研究,有一問題怎麼也未能解決:從usermedia中如何獲得視音頻流?(目前能力有限,先留着以後繼續研究)。哎,功虧一篑啊。
不過,一事還是值得記錄和分享的,那就是大檔案斷點續傳!總體思路:用js擷取檔案的相關屬性如name、size、type、lastmodified等,發送給背景用于确定檔案唯一性(我用的是它們4個的md5散列值,最好是js給出整個檔案的md5值);上傳之前先check,看看已經上傳多少位元組了;後續上傳時隻上傳未曾上傳過的位元組。廢話不多說,上代碼!注釋很清晰哦!
斷點續傳老的做法是将大檔案分割成n個的小檔案再已form表單形式上傳,進而背景進行類似檔案拼接的相關操作。效率還可以,但顆粒度就沒有上面新的方法細了,哈哈。上面的新方法顆粒度直接精确到位元組了。科技在發展,社會在進步,碼農也能少費點腦子敲代碼,留着打dota了!
best wishes for you!