この記事では、JavaScript が FileReader を使用して画像アップロードのプレビュー効果を実現する方法を主に詳しく紹介します。興味のある方は参考にしてください。
FileReader は HTML5 ファイル API の一部です。非同期ファイル読み取りメカニズムを実装します。 FileReader は、リモート サーバーではなくファイル システムを読み取る点を除けば、XMLHttpRequest と考えることができます。ファイル内のデータを読み取るために、FileReader は次のメソッドを提供します。
readAsText(file,encoding): ファイルをプレーンテキストで読み取り、読み取ったファイルを result 属性に保存します。
readAsDataURL(file): ファイルを読み取り、データ URI の形式で result 属性にファイルを保存します。
readAsBinaryString(file): ファイルを読み取り、文字列を result 属性に保存します。文字列内の各文字は 1 バイトを表します。
readAsArrayBuffer(file): ファイルを読み取り、result 属性にファイルの内容を含む ArrayBuffer を保存します。
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 ブラウザをサポートできます。
以上がFileReaderを使って画像のアップロードとプレビューを完了するJavaScriptの機能の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。