隨著移動互聯(lián)網(wǎng)的普及,網(wǎng)站和移動應(yīng)用的用戶體驗越來越重要,其中圖片的使用也越來越頻繁。而有些需求需要用戶在本地選擇多張圖片上傳,這時候使用jquery來輔助實現(xiàn)會是一個好的選擇。
首先,我們需要一個選擇文件的按鈕和一個展示已選擇圖片的容器:
<span><input type="file" id="fileChooser" multiple /></span> <span><div id="imageContainer"></div></span>
接著,我們通過jquery監(jiān)聽選擇文件按鈕的change事件,獲取用戶選擇的文件信息并展示:
$(function() { $('#fileChooser').change(function() { // 獲取用戶選擇的文件信息 var files = this.files; // 遍歷文件列表,展示圖片 for (var i = 0; i < files.length; i++) { var file = files[i]; // 只顯示圖片類型文件 if (!file.type.match('image.*')) { continue; } // 使用FileReader對象讀取文件數(shù)據(jù) var reader = new FileReader(); reader.onload = function(event) { // 新建一個圖片標(biāo)簽,展示已選擇的圖片 var img = document.createElement('img'); img.src = event.target.result; $('#imageContainer').append(img); } reader.readAsDataURL(file); } }) });
以上代碼通過FileReader對象讀取文件數(shù)據(jù)并轉(zhuǎn)化為base64格式的字符串,再將其賦值給新建的img標(biāo)簽的src屬性即可展示。通過這種方式,用戶不僅可以選擇多張圖片上傳,還可以及時預(yù)覽已選擇的圖片。
需要注意的是,現(xiàn)代瀏覽器已經(jīng)支持HTML5的File API,但是在一些老舊的瀏覽器中可能不支持,所以在開發(fā)中需要特別注意兼容性的問題。