這篇文章主要為大家詳細介紹了JavaScript使用FileReader實現圖片上傳預覽效果,具有一定的參考價值,有興趣的小伙伴們可以參考一下
FileReader是HTML5 File API的一部分。它實作了一種非同步檔案讀取機制。可以把FileReader想像為XMLHttpRequest,差別只是它讀取的是檔案系統,而不是遠端伺服器。為了讀取文件中的數據,FileReader提供以下幾種方法。
readAsText(file,encoding):以純文字的方式讀取文件,將讀取的文件儲存到result屬性中。
readAsDataURL(file):讀取檔案並將檔案以資料URI的形式保存在result屬性中。
readAsBinaryString(file):讀取檔案並將一個字串保存在result屬性中,字串中的每個字元表示一個位元組。
readAsArrayBuffer(file):讀取檔案並將一個包含檔案內容的ArrayBuffer保存在result屬性中。
multiple 屬性表示支援多張圖片
<p id="wrapper"> <input id="fileUpload" type="file" multiple /><br /> <p id="image-holder"> </p> </p>
$("#fileUpload").on('change', function () { //获取上传文件的数量 var countFiles = $(this)[0].files.length; var imgPath = $(this)[0].value; var extn = imgPath.substring(imgPath.lastIndexOf('.') + 1).toLowerCase(); var image_holder = $("#image-holder"); image_holder.empty(); if (extn == "gif" || extn == "png" || extn == "jpg" || extn == "jpeg") { if (typeof (FileReader) != "undefined") { // 循环所有要上传的图片 for (var i = 0; i < countFiles; i++) { var reader = new FileReader(); reader.onload = function (e) { $("<img />", { "src": e.target.result, "class": "thumb-image" }).appendTo(image_holder); } image_holder.show(); reader.readAsDataURL($(this)[0].files[i]); } } else { alert("你的浏览器不支持FileReader!"); } } else { alert("请选择图像文件。"); } });
FileReader 可以支援Internet Explorer 10+、FireFox,、Chrome 和Opera瀏覽器。
以上是JavaScript使用FileReader完成圖片上傳預覽的功能介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!