File API 客製上傳檔案按鈕 (input file)

File API 客製上傳檔案按鈕 (input file)

因為大部份新寫的文章都發表在自己架的網站「Let’s Write」,不想之後同一篇內容的文章爭搜尋排名,因此在Medium這只會列出前面幾段,全文的部份請到 Let’s Write 上閱讀囉~

最近朋友遇到一個需求,就是要客製上傳檔案的按鈕。找了一下以前寫過的東西,那時的寫還不是說很懂,是用 JS 在 trigger click,而不是直接用 label for 的特性。想了一下,覺得寫成一篇,然後把 code 更新一次再存起來,以後要用比較好找。

本篇大綱


客製上傳檔案 input HTML 部份

HTML 的部份,因為 input type="file" 會被隱藏起來,按鈕樣式實際是寫在 label 上,就要用 input id、label for 的這個特性,讓 label 被點擊時可以去 trigger input 被點擊。

另外案例的部份加上限制選擇的檔案只能是圖片檔,整理後如下:

<input id="customFileInput" type="file" accept="image/*">
<label for="customFileInput" class="button-primary">客製選擇檔案按鈕</label>

可以看到 inputid,跟 labelfor,兩個值要是相同的,這樣就可以把 labelinput 綁起來。

閱讀全文:File API 客製上傳檔案按鈕 (input file)