H5 による複数の画像アップロードを完了する例の詳細な説明

Y2J
リリース: 2017-05-24 11:42:01
オリジナル
3882 人が閲覧しました

この記事では主にHTML5に基づいて複数の写真をアップロードする機能と、単一の写真をアップロードすることに基づいて複数の写真をアップロードする機能を紹介します。興味のある友人はそれを参照してください

写真のアップロードについては以前にも書きましたが、最近、複数のアップロードを必要とするビジネス要件があったため、

HTML 構造を書き直しました:


XML/HTML コードコンテンツをクリップボードにコピーします

<p class="container">  
    <label>请选择一个图像文件:</label>  
    <input type="file" id="file_input" multiple/>  
</p>
ログイン後にコピー

ちなみに、このアップロードの主なロジックについて説明します:

· input タグ を使用し、type=file を選択することを忘れないでください。そうでない場合は、画像を 1 つだけ選択できます

· の変更時間をバインドします。重要な点は、この変更

イベント

をどのように処理するかです。H5 の新しい FileReader インターフェースを使用してファイルを読み取り、base64 にエンコードします。次に、バックエンドのクラスメートと対話します。 JS コード:


JavaScript

コード内容をクリップボードにコピーします

window.onload = function(){   
        var input = document.getElementById("file_input");   
        var result,p;   
    
        if(typeof FileReader===&#39;undefined&#39;){   
            result.innerHTML = "抱歉,你的浏览器不支持 FileReader";   
            input.setAttribute(&#39;disabled&#39;,&#39;disabled&#39;);   
        }else{   
            input.addEventListener(&#39;change&#39;,readFile,false);   
        }<br>     //handler   
        function readFile(){   
            for(var i=0;i<this.files.length;i++){   
                if (!input[&#39;value&#39;].match(/.jpg|.gif|.png|.bmp/i)){  //判断上传文件格式   
                    return alert("上传的图片格式不正确,请重新选择")<br>          }   
                var reader = new FileReader();   
                reader.readAsDataURL(this.files[i]);   
                reader.onload = function(e){   
                    result = &#39;<p id="result"><img src="&#39;+this.result+&#39;" alt=""/></p>&#39;;   
                    p = document.createElement(&#39;p&#39;);   
                    p.innerHTML = result;   
                    document.getElementById(&#39;body&#39;).appendChild(p);    //插入dom树                      <br>          }   
            }   
        }   
    }
ログイン後にコピー
これは複数の画像をアップロードする方法ですか? 0.0

しかし、いいえ、これは画像を Base64 エンコーディングに変換するだけです。更新後は何も表示されません

画像を挿入した後、開発者ツールを開いて、HTML 構造が次のようになっているのを確認してください

実際には、ファイルをファイルに送信しています。 function

の処理でバックエンドに

queue を送信すると、バックエンド スチューデントは MD5 暗号化されたファイルとそのファイルに対応するパスをフロントエンドに返し、フロントエンドはこのパスを取得して、ページ。 次に、MD5 ファイルをバックエンドに転送します。アップロード後、通常、フロントエンドには delete

images の操作があるためです。返す目的は、それらの画像が必要なものであることを確認するようにバックエンドに指示することです。バックエンドはそれらをデータベースに保存します。

jqueryの操作方法を教えてください

JavaScriptコード

コンテンツをクリップボードにコピーします

function readFile(){   
            var fd = new FormData();   
            for(var i=0;i<this.files.length;i++){   
                var reader = new FileReader();   
                reader.readAsDataURL(this.files[i]);   
                fd.append(i,this.files[i]);<br>          }   
                $.ajax({   
                    url : &#39;&#39;,   
                    type : &#39;post&#39;,   
                    data : fd,   
                    success : function(data){   
                        console.log(data)   
                   }    
                })   
}
ログイン後にコピー
FormDataもH5の新しいインターフェースであり、フォームコントロールの送信をシミュレートするために使用されます。最大の利点は、バイナリ ファイル

を送信し、成功コールバックで目的のデータを取得した後、前の方法と同様に画像をページに挿入できることを意味します ~ 最終レンダリング:

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。

【関連おすすめ】

1.

Html5の無料ビデオチュートリアル

2. H5とCSS3の組み合わせのサンプルチュートリアル

3. H5のイベント属性の詳細な説明

4. H5 28 の重要な新機能、新しいトリック、新しいテクノロジーについての非常に詳細な説明

5 H5 でタイマーを作成するためのコード デモ

以上がH5 による複数の画像アップロードを完了する例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!