日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > HTML > 正文

Html5實現單張、多張圖片上傳功能

2024-08-26 00:21:26
字體:
來源:轉載
供稿:網友

前言

今天我們聊一聊圖片上傳,單張Or多張 ,如今,各大圖片上傳插件數不勝數,例如:Jquery的 verupload.js,jQuery File Upload、Uploadify、jQuery.filter等等。But。上面說到的這些插件,今天我們不談,我們來看一看使用HTML5中的FileReader 如何實現 圖片的單張及多張預覽、刪除、上傳等功能。先看下實現后的效果如下:

Html5,圖片上傳

2|0實現

2|1前端部分

這塊是用戶點擊按鈕 其中我們最重要的一句話是input type=file 和給了一個multiple屬性,可以滿足多張圖片上傳

<div class="form-group form-row">        <label class="col-sm-2 control-label uText">俱樂部相冊</label><div class="row">                        <div class="col-xs-10 col-sm-8 mTop5">                            <label                                <input type="file" accept="image/*" name="ClubImagesUpload" id="ClubImagesUpload" class="hide" multiple="multiple">                                <img src="/Images/registerNewSite/btn_addimg.png" class="addImg"/>                            </label>                        </div>                    </div></div>

下面這塊區域是用于圖片預覽的

<div class="form-group form-row" id="preViewMore"><div class="row">      <div class="col-xs-9">         <div id="clubInputImagePreview" class="col-sm-9 img-preview img-preview-sm"></div>       </div>  </div></div>

2|2樣式部分

什么?連樣式你都要看,還有沒有人性(苦笑臉)

2|3Js部分

首先我們分析下上面的html,我們用一個label把input和一個img標簽包起來了,我們希望點擊效果圖那個+號圖片,就能彈出選擇相片的對話框,所以,我們需要先給label來一個點擊事件:

$("#btnClubImg").click(function() {    //TODO Something});

接著我們再看,因為我們是要獲取上傳的文件,而我們的文件主要是在input上,所以,我們先將input標簽獲取到:

$("#btnClubImg").click(function() {      var $input = $("#ClubImagesUpload");     console.log($input);//打印當前元素});

我們將當前input元素標簽打印出來看看是個什么東東

Html5,圖片上傳

我們展開第一項會發現files里面length長度是0

Html5,圖片上傳

好,我們繼續分析,因為我們想要能當input框改變的時候,說簡單點 就是有選擇到文件的時候,我們能獲取到當前選擇的文件,這個和獲取input框文字輸入是一樣的道理,所以,經過分析,我們知道需要給input標簽加一個change事件:

 $("#btnClubImg").click(function() {      var $input = $("#ClubImagesUpload");      console.log($input);      $input.on("change", function () {         console.log(this);//打印改變后的當前元素  });});   

讓我們來瞄一眼,獲取到改變后的input元素里面有些啥東東:

Html5,圖片上傳

這里很清楚得可以看到,我們獲取到了選擇的圖片,包括有最后修改事件,圖片名稱,大小以及圖片類型(有了文件類型,我們就可以判斷當前用戶選擇的是否是圖片不是嗎(斜眼笑)) 同樣,這是單個文件的, 如果是多個文件,就會有多個file

Html5,圖片上傳

接著往下看,通過打印輸出我們可以看到,我們再input 標簽的files元素上已經拿到了我們想要的文件信息,我們只需要獲取它們就行了:

 var files = this.files; var length = files.length;

這樣,我們就可以獲取到所有文件,以及文件的個數,那這里問題來了,我們如果是選擇多個文件,如果將其依次輸出并展示到頁面上呢?看到上面標注的四個字,腦袋中有沒有閃現出兩個字呢?循環

 $.each(files, function (key, value) {        //TOTO Something  });

通過將上面得到的files 循環,我們可以依次得到每個文件的信息。這樣,你就不僅可以將其依次輸出,如果你愿意,你還可以將其送上天~

var fileReader = new FileReader();//實例化一個FileReader對象var file_ = files[key];//獲取當前文件if (/^image///w+$/.test(file_.type)) {//將當前文件進行正則匹配,看是否是選擇的圖片      fileReader.onload = function() {//當讀取操作完成時調用       }         } 

有必要延伸下FileReader的知識點:

FileReader主要用于將文件內容讀入內存,通過一系列異步接口,可以在主線程中訪問本地文件。

使用FileReader對象,web應用程序可以異步的讀取存儲在用戶計算機上的文件(或者原始數據緩沖)內容,可以使用File對象或者Blob對象來指定所要處理的文件或數據。

Html5,圖片上傳

回到主題,我們已經能夠得到文件并且得到返回,所以此時,我們只需要展示返回的結果就行了

$("#clubInputImagePreview").css("background-image", "url(" + this.result + ")");

我們將其this.result打印出來看看是個什么東東:

Html5,圖片上傳

不言而喻,是將圖片轉換成了Base64的數據格式。最后,我們調用 readAsDataURL 讀取文件內容,將其用data:url字符串表示出來

fileReader.readAsDataURL(value);

這樣,你就可以得到一個簡易的圖片上傳的Demo了,但是并不是最終的,因為你還需要加很多業務進去。比如:得到一張預覽圖片后,當前標簽會被占用,如果下次循環進來,直接使用原標簽,肯定會將之前的圖片替換,那這肯定不是我們想要的效果,我們希望是能依次展示,而不是替換展示。所以,我們還需要做一些處理:

 $("#clubInputImagePreview").css("background-image", "url(" + this.result + ")");//使用apend再當前元素下追加一個子節點 $("#clubInputImagePreview") .append("<img src='/Images/registerNewSite/btn_r_del.png' class='clubsImage'  id='ImgRemove' />");//使用after 向當前兄弟節點 追加一個同級節點                                       $("#clubInputImagePreview").after( "<div id='clubInputImagePreview1' class='col-sm-9 img-preview img-preview-sm delImg' ></div>");

然后我們追加的刪除圖片,也需要給其點擊事件,讓我們的當前預覽區域消失:

$("#ImgRemove").click(function () {          $(this).parent().remove();});

最后,你會發現結果還不是我們想要的,那是因為 當前ID還在,所以無法進行下一步操作,而我們只需要將當前元素的Id Remove掉,然后新增一個同ID的元素,這樣瀏覽器就會認為這是一個新的元素:

 $input.removeAttr("id"); var newInput ='<input type="file" accept="image/*" name="ClubImagesUpload" id="ClubImagesUpload" class="hide" multiple="multiple">'; $(this).append($(newInput));

最后完整JS代碼如下:

  var intP = 0;        $("#btnClubImg").click(function() {            var $input = $("#ClubImagesUpload");//            console.log($input);            $input.on("change",                function () {//                    console.log(this);                    var files = this.files;                    var length = files.length;                    if (intP > 8) {                        layer.msg('圖片不能再多了~', {});                        return;                    }                    $.each(files,                        function (key, value) {                            var fileReader = new FileReader();                            var file_ = files[key];                            if (/^image///w+$/.test(file_.type)) {                                fileReader.onload = function() {                                    if (intP > 8) {                                        layer.msg('圖片不能再多了~', {});                                        return;                                    }                                    if (key == 0 && intP == 0) {                                        console.log(this.result);                                        $("#clubInputImagePreview").css("background-image", "url(" + this.result + ")");                                        $("#clubInputImagePreview")                                            .append(                                            "<img src='/Images/registerNewSite/btn_r_del.png' class='clubsImage'  id='ImgRemove' />");                                        $("#clubInputImagePreview").after(                                            "<div id='clubInputImagePreview1' class='col-sm-9 img-preview img-preview-sm delImg'></div>");                                    } else {                                        $("#clubInputImagePreview" + parseInt(intP) + "").css("background-image",                                            "url(" + this.result + ")");                                        $("#clubInputImagePreview" + parseInt(intP) + "").append(                                            "<img src='/Images/registerNewSite/btn_r_del.png' class='clubsImage'  id='ImgRemove" +                                            parseInt(parseInt(1) + parseInt(intP)) +"' />");                                        $("#clubInputImagePreview" + parseInt(intP) + "").after(                                            "<div id='clubInputImagePreview" +                                            parseInt(parseInt(1) + parseInt(intP)) +                                            "'class='col-sm-9 img-preview img-preview-sm delImg' ></div>");                                    }                                    if (key == 0 && intP == 0) {                                        $("#ImgRemove").click(function () {                                            $(this).parent().remove();                                        });                                    } else {                                        $("#ImgRemove" + parseInt(parseInt(1) + parseInt(intP)) + "").click(function () {                                            $(this).parent().remove();                                        });                                    }                                    intP += parseInt(1);                                };                                fileReader.readAsDataURL(value);                            } else {                                layer.msg("格式錯誤<br/>請選擇一個圖片文件");                            }                        });                });            $input.removeAttr("id");            var newInput =                '<input type="file" accept="image/*" name="ClubImagesUpload" id="ClubImagesUpload" class="hide" multiple="multiple">';            $(this).append($(newInput));        });

總結

以上所述是小編給大家介紹的Html5實現單張、多張圖片上傳功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
91精品国产综合久久精品| 五月天久久比比资源色| 久久蜜桃一区二区| 国产日韩亚洲欧美| 欧美日韩综合在线观看| 久久久综合精品| av丝袜在线| www高清在线视频日韩欧美| 婷婷精品视频| 国产一区深夜福利| 在线资源av| av中文天堂在线| 黄色一区二区在线观看| 亚洲第一网中文字幕| 色综合久久六月婷婷中文字幕| 精品视频三区| 亚洲综合在线视频| 日韩不卡一区二区| 91精品国产自产在线| 日韩精品在线私人| 色妇色综合久久夜夜| 亚洲一区在线观看视频| 精品视频资源站| 日韩视频中文字幕| 国产一级免费| 在线欧美日韩国产| 中文字幕国产在线| 日韩精品三级| 国产裸舞福利在线视频合集| 欧美日韩综合视频| 在线综合 亚洲 欧美中文字幕| 国产99精品| 欧美日韩国产一区在线| 91xxx在线观看| 日韩免费不卡avV| 伊人亚洲视频| 欧美不卡视频| 久精品在线观看| 日韩欧美国产综合| 亚洲成人7777| 亚洲羞羞网站| 91精品国产综合久久香蕉的特点| 国产福利免费在线观看| 日韩在线视频一区| 国产亚洲短视频| 亚洲永久字幕| 亚洲va中文字幕| 国产拍揄自揄精品视频麻豆| 日韩av一区二区在线观看| 日韩精品三级| 一区二区三区在线播| 久久99蜜桃精品久久久久小说| 亚洲欧洲国产视频| 欧美不卡一二三| 在线视频不卡国产V| 精品1区2区3区| 快she精品国产999| 欧美日韩国产在线观看| 精品视频在线视频| 欧美日韩中文字幕在线| 精品欧美不卡一区二区在线观看| 欧美日韩国产高清| 国产中文在线观看| av一区在线观看| 91久久大香伊蕉在人线| 亚洲国产无线乱码在线观看| 精品成a人在线观看| 91麻豆精品国产91久久久使用方法| 国产视频1区| 国产高清精品在线| 国产区高清在线| 欧美三级日韩在线| www日韩在线观看| 欧美日韩一二| 日韩视频在线一区| 日韩久久久精品| 午夜亚洲一区| 免费在线亚洲| 国产欧美日韩在线视频| 日韩欧美一二三| 国产午夜精品久久| 国产视频一区三区| 91日韩中文字幕| 视频一区中文字幕国产| 欧美一级免费在线观看| 欧美日韩亚洲一区| 精品欧美久久久| 中文字幕在线国产| 欧美日韩国产999| 二区三区中文字幕| 在线不卡日本| 日韩精品一级| 最新中文字幕在线| 色国产在线视频| 欧美三级日韩在线| 国产欧美日韩第一页| 日韩欧美一级二级三级久久久| 亚洲视频色图| 亚洲区中文字幕| 免费精品国产自产拍在| 一区二区中文字幕在线| 亚洲国产欧美日韩在线| 影音先锋一区二区资源站| 精品视频www| 国产主播中文字幕| 久久精品蜜桃| 日韩 欧美 中文| 中文字幕精品www乱入免费视频| 欧美日韩午夜在线视频| 欧美国产一级片| 精品日韩在线| 国产亚洲短视频| 精品日韩在线观看| 精品久久电影| www.狠狠| 日韩欧美国产一二三区| 中文字幕日韩高清| 日韩欧美一级精品久久| 69av亚洲| 亚洲国产福利| 老司机久久99久久精品播放免费| 一区二区三区视频网站| 99久久久精品免费观看国产| 国产黄色一级片| 精品国产31久久久久久| 99视频在线看| 精品亚洲综合| 日韩视频一区| 99国内精品| aaa欧美日韩| 日韩精品视频在线看| 欧美日韩中文字幕日韩欧美| 亚洲视频在线观看日本a | 国产最顶级的黄色片在线免费观看| 亚洲一级特黄| 日韩精品手机在线| 欧美日韩国产在线观看| 欧美日韩91| 国产99在线|亚洲| 欧美日韩国产首页在线观看| 日韩欧美在线第一页| 99精品999| 欧美一级久久久久久久久大| 亚洲v中文字幕| 国产免费不卡av| 极品久久久久久| 日韩高清不卡一区二区| 成人一区二区不卡免费| 亚洲三级av| 日韩视频中文| 欧美激情一区二区在线| 日本国产在线视频| 在线视频第一页| 久草亚洲一区| 中文字幕最新精品| 亚洲 欧美综合在线网络| 亚洲三级免费看| 日本免费在线视频不卡一不卡二| 婷婷中文字幕在线观看| 亚洲精华国产欧美| 99中文字幕一区| 国产黄色小视频| 精品国产1区2区3区| 日韩亚洲一区在线| 欧美日韩中文字幕视频| 国产高清一区| 欧美性生交大片免费| 欧美中文字幕精品| 欧美日韩国产在线| 日韩视频在线一区二区| 欧美在线日韩在线| 国产日韩av一区二区| 一区二区精品| 91精品国产综合久久久蜜臀粉嫩| 97天天综合网| 午夜一区二区三区视频| 亚洲欧洲日韩精品在线| 日韩精品视频在线看| 亚洲免费观看在线观看| 日韩在线观看视频一区二区| 本道综合精品| 视频一区中文字幕国产| 中文字幕在线视频网| 不卡中文一二三区| 国产丝袜一区| 欧美日韩在线视频免费观看 | 91精品啪在线观看国产60岁 | 国产99亚洲| 在线视频日韩欧美| 欧美日韩综合在线观看| 欧美日韩亚洲91| 欧美日韩中国免费专区在线看| 51精品免费网站| 亚洲精品中文字幕乱码三区| 黄色国产在线| 在线中文字幕视频| 国产亚洲污的网站| 日韩av一区在线| 亚洲欧洲在线观看av| 欧美日韩激情一区| 欧美日韩中文字幕在线观看| 日韩精品在线观看网站| 日韩欧美在线中文字幕| 欧美一级日韩一级| 国产欧美综合在线观看第十页| 色99中文字幕| 久久99久久久久久久噜噜| 欧美日韩国产免费| 国产调教精品| 日韩 国产 一区| 亚洲.国产.中文慕字在线| 97久久精品午夜一区二区| 在线观看国产一级片| 欧美亚洲另类制服自拍| 综合激情一区| 国产999在线观看| 日韩在线视频一区二区三区| 国产专区中文字幕| 精品久久电影| 日韩欧美一二三区| 激情国产在线| 国产资源中文字幕| 欧美日韩视频免费看| 99精品一级欧美片免费播放| 欧美日韩国产一区在线| 999精品网| 欧美国产一区视频在线观看| 欧美日韩综合视频| 九一精品国产| 亚洲欧美999| 中文字幕欧美日韩在线| 亚洲免费观看视频| 午夜精品免费视频| 久久激情一区| 欧美一卡2卡三卡4卡5免费| 日韩亚洲不卡在线| 日韩精品一级| 亚洲一区中文字幕在线| 欧美日韩中文字幕精品| 国产三级视频网站| 国产高清视频一区二区| 日韩三级精品电影久久久| 日韩精品视频中文字幕| 久久久99免费| 中文字幕亚洲欧美| 亚洲天堂国产视频| 日韩视频在线免费播放| 一区二区精品免费| 欧美日韩中文字幕综合视频 | 中文不卡在线| 色综合天天综合网天天狠天天 | 国产v日产∨综合v精品视频| 久久久99久久| 欧美日韩精品欧美日韩精品| 色综合天天性综合| 亚洲免费观看视频| 日韩一级免费在线观看| 99在线国产| 日韩精品手机在线| 国产日韩三级| 国产成人va亚洲电影| 精品一二三区| 中文字幕亚洲第一| 亚洲最新免费视频| 欧美日韩中文字幕在线| 国产一区在线精品| 91九色精品视频| 国产视频三级在线观看播放| 日韩精品在线第一页| 国产在线拍偷自揄拍精品| 国内不卡的二区三区中文字幕| 亚洲最大黄色| 国产高潮久久久| 国产欧美第一页| 日韩视频精品在线观看| 国产在线观看色| 中文字幕国产视频| 欧美日韩91| 国产午夜精品久久| 一级一片免费视频| 亚洲欧洲一区二区天堂久久| 国产成人精品网址| 国产福利在线看| 日韩中文字幕在线视频播放 | 日韩亚洲欧美中文高清在线| 久久久91精品国产| 欧美日韩一二| 中文在线日韩| 樱花草www在线| 麻豆一区二区99久久久久| 午夜亚洲福利| 黄色一区二区视频| a在线观看免费视频| 一二三区精品福利视频| 日韩.com| 亚洲欧洲综合另类| 欧美不卡123| 日韩欧美在线影院| 日韩精品免费视频一区二区三区| 国产一区在线观看视频| 欧美成人精品在线| 欧美不卡123| 九色蝌蚪视频在线| 日韩中文欧美| 97天天综合网| 日韩欧美在线综合网| 成年人看的羞羞网站| 国产黄色一区| 日韩国产在线不卡视频| 精品亚洲成a人片在线观看| 日韩三级免费观看| 亚洲福利精品在线| 91精品国产入口| 亚洲免费专区| 日韩欧美在线网址| 中文字幕在线视频第一页| 欧美不卡123| 国产99在线 | 亚洲| 亚洲社区在线| 91精选在线| 日韩精品福利一区二区三区| 久久久99久久精品欧美| 久久视频免费看| 午夜少妇久久久久久久久| 一本大道一区二区三区| 7799精品视频天天看| 日韩中文字幕在线视频播放| 国产视频aaa| 国产95在线|亚洲| 97国产视频| 日韩国产一区三区| 精品在线观看一区| 免费在线亚洲| 在线国产1区| 中文在线视频观看| 中文字幕在线日韩| 在线免费播放av| 国产成人中文字幕| 日韩三级精品| 精品国产免费视频| 国产超级va在线视频| 天天综合日日夜夜精品| 天堂在线中文| 欧洲精品在线视频| 精品欧美不卡一区二区在线观看| 欧美大片在线观看一区| 高清日韩中文字幕| 日韩av二区| 欧美日韩中文字幕日韩欧美| 亚洲高清免费一级二级三级| 一级特黄aaa大片在线观看| 成人禁用看黄a在线| 91精品国产手机| 中文字幕第一页在线播放| 中文字幕精品在线播放| 国产欧美日韩在线| 欧美日韩一级片在线观看| 久久精品国产99| 日韩久久精品网| 国产乱一区二区| 欧美专区中文字幕| 99pao成人国产永久免费视频| 久久69成人| 亚洲日产av中文字幕| 精品久久九九| www日韩在线观看| 欧美日韩夫妻久久| 日韩欧美在线中字| 日韩精品视频在线观看视频| 国产午夜精品视频| 亚洲一级在线| 在线国产1区| 日韩手机在线观看视频| 国产 欧美 日韩 在线| 日韩在线视频中文字幕| 最新日韩中文字幕| 欧美日韩一级视频| 国产亚洲视频中文字幕视频| 日韩在线高清视频| 欧美国产综合在线V| 亚洲精品中文字幕乱码三区不卡| 日韩中文在线中文网三级| 91麻豆免费视频网站| 成年人黄国产| 精品对白一区国产伦| 欧美在线视频一区二区| 国产欧美日韩在线视频| 日本精品二区| 91精品久久久久久久久久| 中文字幕五月欧美| 久久麻豆视频| 日韩a一区二区| 91精品在线免费| 日韩不卡高清视频| 伊人亚洲视频| 色综合天天性综合| 最近中文字幕日韩精品| 在线中文字幕视频观看| 视频一区三区| 亚洲综合日韩|