ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript イメージアップロード前のローカル プレビューの例_JavaScript スキル

Javascript イメージアップロード前のローカル プレビューの例_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 16:44:161429ブラウズ

画像アップロードプレビュー機能は主に画像をアップロードする前に効果をプレビューするために使用されますが、現在主流の方法には主にjs、jquery、flashが含まれますが、画像アップロードプレビュー機能を実装するには一般的にjsを使用します。一例として。

原則:

これは 2 つのステップに分かれています。画像のアップロードの入力がトリガーされ、ローカル画像が選択されたら、アップロードする画像のオブジェクトの URL (オブジェクト URL) を取得し、そのオブジェクト URL を src に割り当てます。あらかじめ書かれたimgタグの属性で画像を表示します。

ここでは、JavaScript の File オブジェクト、Blob オブジェクト、window.URL.createObjectURL() メソッドを理解する必要があります。

ファイルオブジェクト:

File オブジェクトは、ファイルに関する情報を取得するために使用できます。また、このファイルの内容を読み取るためにも使用できます。通常、File オブジェクトは、ユーザーが入力要素でファイルを選択した後に返される FileList オブジェクトです。これは、ドラッグ アンド ドロップ操作によって生成された DataTransfer オブジェクトから取得されます。
FileList オブジェクトの取得を見てみましょう。

コードをコピー コードは次のとおりです:





Blob オブジェクト:

Blob オブジェクトは、読み取り専用の生データを含むファイルのようなオブジェクトです。Blob オブジェクト内のデータは、JavaScript のネイティブ形式である必要はありません。File インターフェイスは Blob の機能を継承しています。 Blob と拡張サポート ユーザーのコンピューター上のローカル ファイル。

File インターフェイスは Blob を継承するため、取得したいオブジェクト URL は実際には Blob オブジェクトから取得されます。 Blob オブジェクトを URL に変換しましょう:

コードをコピー コードは次のとおりです:


互換性:

上記のメソッドは Chrome ブラウザに適用できます

IE ブラウザの場合は、src の代わりに入力値を直接使用できます
オンラインで情報を表示するには、ファイルの getAsDataURL() メソッドを直接使用できます現在、このメソッドはすべて廃止されています。同様のメソッドには getAsText() と getAsBinary() があります。そのような例を見てみましょう。

コードをコピー コードは次のとおりです。
function getFullPath(obj) { //Get全体像 パス
if (obj) {
//ie
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select();
return document.selection.createRange().text;
}
//firefox
else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if ( obj.files) {
return obj.files.item(0).getAsDataURL();
return
}
return obj.value; 🎜> }
}



このコードは、クライアント イメージの完全なパスを取得するためのものです
そのサイズと形式は制限されます


コードをコピー コードは次のとおりです:

$("#loadFile").change(function () {
var strSrc = $("#loadFile").val();
img = new Image();
img.src = getFullPath(strSrc);
//アップロードされたファイル形式が正しいかどうかを確認します
var pos = strSrc.lastIndexOf(".");
var lastname = strSrc.substring(pos, strSrc.length)
if (lastname.toLowerCase() != ".jpg") {
alert("アップロードしたファイルの種類は "lastname" であり、画像は JPG 形式である必要があります"); 🎜> return false;
}
//アップロードされたファイルのアスペクト比を確認します

if (img.height / img.width > 1.5 || img.height / img.width < ; 1.25) {
alter("アップロードした画像の比率は範囲外です。アスペクト比は 1.25 ~ 1.5 である必要があります");
return;アップロードされたファイルがサイズを超えています
if (img .fileSize / 1024 > 150) {
alter("アップロードしたファイルのサイズが 150K の制限を超えています!");
return
}



このうち、loadFile は HTML 入力ファイルの ID です。その変更イベント、つまりアップロードするファイルを選択した後、画像ボックスに画像を表示しますか? 上記のコードの最後に次のコードを追加します

コードをコピー コードは次のとおりです:$("#stuPic").attr ("src ", getFullPath(this));


jQuery が使用されているので、jQuery で記述されたコードの例を共有しましょう: