javascript 入力画像のアップロードとプレビュー、FileReader プレビュー画像

javascript 入力画像のアップロードとプレビュー、FileReader プレビュー画像

FileReader は、フロントエンドのファイル処理、特に画像処理にとって重要な API です。画像処理の原理を知りたい場合は、これを回避することはできません。

<!DOCTYPE html>
<html>
	<ヘッド>
		<メタ文字セット="utf-8">
		<タイトル></タイトル>
		<スタイル タイプ="text/css">
		.file-ipt{position: absolute;left:0;top: 0;opacity: 0;width: 50px;height: 25px;} //ここで入力ボックスを透明にし、ボタン上に絶対配置します。 .btn{width: 50px;height: 25px; background-color: skyblue;color: white;margin-right: 80px;border: none;border-radius: 10px;font-size: 8px;}
		</スタイル>
	</head>
	<本文>
		<button class="btn">画像</button>
		<input type="file" id="file" accept="image/jpg,imgae/jpeg,image/png" class="file-ipt" onchange="insertimg(this);"><br>
		<img src="" id="img1" alt="">
		<スクリプト言語="javascript">
			関数 insertimg(img){
				var rd = 新しいFileReader();
				ファイル=img.files[0];
				var ファイルタイプ = files.type.slice(6,10);
				ファイルタイプ!='jpg'&&ファイルタイプ!='jpeg'&&ファイルタイプ!='png'){
					alert('png、jpeg、jpg の画像形式のみがサポートされています');
					戻る;
				}それ以外{
					rd.readAsDataURL(ファイル);
					rd.onloadend=関数(e){
						document.getElementById('img1').src=e.target.result;
						document.getElementById('img1').style.width="300px";
						document.getElementById('img1').style.height="auto";
					};
				}
			}
		</スクリプト>
	</本文>
</html>

知識ポイント補足:JS入力ファイル画像アップロードプレビュー効果

まず、ファイルと FileReader API について学習します。1 つ以上のファイルを選択すると、選択したファイルを表す 1 つ以上の File オブジェクトにアクセスできます。これらのオブジェクトは、FileList オブジェクトに含まれています。 type 属性が file であるすべての <input> 要素には、ユーザーが選択したファイルを保存するための files 属性があります。 Files には length プロパティと item メソッドがあります。files[index] または files.item(index) を通じて、選択したファイル オブジェクトを取得できます。変更イベントを使用して、入力ファイルの入力完了イベントをリッスンできます。

HTMLコード:

 <ul class="crgoods_uploadUl clearfix">
     <li><img src="img/product1.jpg"></li>
     <li><img src="img/product1.jpg"></li>
     <li class="add"><i>+</i>最大 20 枚の写真<input type="file" class="liAdd_flie" onchange="liUploadImg(this)"></li>
</ul>

jsコード:

//商品アルバム画像アップロードプレビュー関数liUploadImg(file){     
        if (file.files && file.files[0]){
            var リーダー = 新しい FileReader();
            reader.onload = 関数(evt){ 
                // imgUpload.src = evt.target.result;
                $('.crgoods_uploadUl li.add').before('<li><img src="'+evt.target.result+'"></li>');   
            }
            リーダー.readAsDataURL(file.files[0]);
        }それ以外{ 
            var sFilter = 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';
            ファイルを選択します。
            var src = document.selection.createRange().text;
            imgUpload.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;
        }
    }

また、詳細なAPIについては、https://segmentfault.com/a/1190000006600936を参照してください。

次に例を示します。

これで、JavaScript 入力画像のアップロードとプレビュー、FileReader プレビュー画像に関するこの記事は終了です。JavaScript ファイルのアップロードとプレビューに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 画像のアップロードとプレビュー機能を実現するjs
  • jsを使用して写真をアップロードし、通常通り表示します
  • アップロードした写真のプレビューを実現する js メソッド
  • jsを使用して画像アップロードの即時表示効果を実現します

<<:  データベースの冗長フィールドを合理的に使用する方法

>>:  Linux 仮想マシンの IP アドレスを変更し、ゲートウェイを確認し、ネットワーク環境を構成する方法に関するチュートリアル

推薦する

Linux/CentOS システムでネットワーク時間を同期する 2 つの方法の詳細な説明

ハードウェア上の理由により、機械は標準時間にある程度追いつけない場合があり、その誤差は 1 か月で数...

Dockerコアとインストールの具体的な使い方

1. Docker とは何ですか? (1)DockerはLinuxコンテナ内でアプリケーションを実行...

40以上の美しいWebフォームデザイン例

Web フォームは、訪問者と Web サイト所有者間の主要なコミュニケーション チャネルです。フィー...

JavaScript を使用してタイムラインとアニメーション効果を実装するためのサンプル コード (フロントエンドのコンポーネント化)

目次コードのクリーニングJavaScript の「フレーム」 「フレーム」の実装方法1. 間隔を設定...

MySQLの大文字と小文字の区別によって発生する問題の分析

MYSQLは大文字と小文字を区別します言葉を見れば信じられます。タイトルを見れば内容がわかります。 ...

Vue でスクロールバーのスタイルを変更する方法

目次まず、スクロール バーのスタイルを変更するには、疑似要素-webkit-scrollbarを使用...

Docker での Redis のマスタースレーブ構成チュートリアルの詳細説明

1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...

Redmine の Docker インストール手順

イメージをダウンロードします(オプションの手順です。省略した場合は、手順 3 と 4 で自動的にイン...

jQuery で呼吸カルーセル効果を実現

この記事では、呼吸カルーセル効果を実現するためのjQueryの具体的なコードを参考までに共有します。...

vue-router 履歴モード サーバー側設定プロセス記録

歴史ルート履歴モードとは、HTML5 の履歴 API を使用してクライアント側ルーティングを実装する...

MySQL truncate table ステートメントの使用

Truncate table ステートメントは、テーブル内のすべてのデータを削除/切り捨てるために使...

CSS ボックスの折りたたみに対する 5 つの解決策

まず、ボックスコラプスとは何でしょうか?親ボックスの内側にあるべき要素が外側にあります。第二に、箱は...

すべてのウェブ開発者が知っておくべき61のこと

通常、全員のスピーチを最初から最後まで読む必要があります。ただし、Stack Overflow には...

Vue で ToDo アプリケーションを実装する例

背景まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコン...

MySQLがbinlogファイルを手動で登録し、マスタースレーブ異常を引き起こす理由

1. 問題の原因友人の @水米田 から、POSITION に基づくマスタースレーブについて質問があり...