ホームページ  >  記事  >  ウェブフロントエンド  >  JS で FileReader を使用して、写真をアップロードする前にローカル プレビュー機能を実装する方法

JS で FileReader を使用して、写真をアップロードする前にローカル プレビュー機能を実装する方法

亚连
亚连オリジナル
2018-06-02 09:52:021845ブラウズ

FileReader オブジェクトを使用すると、Web アプリケーションは、読み取るファイルまたはデータを指定する File または Blob オブジェクトを使用して、ユーザーのコンピューターに保存されているファイル (または生データ バッファー) の内容を非同期的に読み取ることができます。この記事では、JS で FileReader を使用して画像をアップロードする前にローカル プレビューを実装する方法を紹介します。必要な友達はそれを参照してください

はじめに

画像のアップロード プレビューを行うとき、特別な要件がない場合、画像を直接アップロードしてバックグラウンドに移動し、成功後に URL を取得してページにレンダリングするだけです。画像が比較的小さい場合は、プレビューの表示が遅くなります。 , ジャンクファイルも生成されるので、アップロードする前にローカルでプレビューした方が良いでしょう。

プロジェクトに取り組んでいてプラグインを探していたとき、純粋なフロントエンドで画像のローカル プレビューを実現できることは知っていましたが、今日のインタビュー中に質問されて、偶然発見しました。コンピューターのデスクトップにデモを実装し、それに基づいてデモで API を確認し、簡単にまとめました:

まず、File オブジェクトを取得する必要があります

input タグを使用して画像をアップロードすると、イベント オブジェクトファイル オブジェクトのコレクションが含まれます

event.target.files

中心となるのは FileReader オブジェクトです

MDN によると:

FileReader オブジェクトにより、Web アプリケーションはファイル (または生データ バッファー) の内容を非同期的に読み取ることができますファイルまたは Blob オブジェクトを使用して、読み取るファイルまたはデータを指定し、ユーザーのコンピューターに保存されます。

まず、コンストラクターとして FileReader のインスタンス オブジェクトを取得する必要があります

var freader = new FileReader();

readAsDataURL() メソッドを使用して、指定されたコンテンツを読み取ります

freader.readAsDataURL(file);

最後に、イベント処理があります。ここでは、読み取りが完了したときにイメージをレンダリングするので、ラックがロードされた後、最終的に取得するのは、base64 でエンコードされた src アドレスです。次回は具体的な理由を説明して、base64 に関する特別な記事を書きます。 コーディング記事

freader.onload = function(e) { console.log(e); myImg.setAttribute('src', e.target.result); }

以上が私がまとめたものであり、今後皆さんのお役に立てれば幸いです。

関連記事:

ノードの process モジュールと child_process モジュールを学習する方法 (詳細なチュートリアル)

jQuery+JSONP によるクロスドメイン リクエスト メソッド (詳細なチュートリアル)


Vue2.0 を使用するhttpリクエストと読み込み表示を実装


以上がJS で FileReader を使用して、写真をアップロードする前にローカル プレビュー機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。