在上一篇介紹HTML5 File API的文章中 提到Data URI是一種文字型態的檔案格式,其格式為"data:<mime type>;base64,<data>", 範例:"data:image/png;base64,PCFET0NUWVB..." ,而Data URI 的好處就是它可以直接寫入 HTML,且img元素可以接受Data URI格式。 這次的文章主要是介紹運用Object URL將檔案儲存在瀏覽器。過去我們往往都會透過後端的Web API 將檔案路徑傳送到前端link或img元素,以便讓使用者下載或瀏覽,但這有一些問題,像是縮圖殘留,這時就是必須自己去寫一段Code清理Cache。如今我們可以透過HTML5 Object URL將檔案儲存在瀏覽器,而且由於檔案物件的生命週期與網頁綁在一起,所以當網頁被關閉,這些檔案物件就會被釋放,因此我們自然可以不用去處理縮圖殘留的問題。 事實上Object URL的儲存機制就是利用GUID向瀏覽器提取檔案物件,其而格式為"blob:<url>;<GUID>", 範例:"blob:https://www.myblogger.com/e75c76a2-138a-4b17-b9f6-029199e3985f" Object URL 程式碼範例如下所示: 1. 首先,在Input註冊Chang事件以便取得File。 2. 我們利用URL.createObjectURL去建立ObjectURL,以及取得ObjectURL String。 3. 最後,將得到的ObjectURL String丟到link 元素,此時我們可以透過download屬性指定下載時的檔案名稱。 ※ 如果想要使連結失效並且釋放檔案物件,可以呼叫URL.revokeObjectURL來註銷ObjectURL。 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>