FileReaderを使って画像のアップロードとプレビューを完了するJavaScriptの機能の紹介

巴扎黑
リリース: 2017-09-07 11:24:33
オリジナル
1718 人が閲覧しました

この記事では、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(&#39;change&#39;, function () {
 
  //获取上传文件的数量
  var countFiles = $(this)[0].files.length;
 
  var imgPath = $(this)[0].value;
  var extn = imgPath.substring(imgPath.lastIndexOf(&#39;.&#39;) + 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート