亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > HTML > 正文

html5中如何將圖片的絕對(duì)路徑轉(zhuǎn)換成文件對(duì)象

2024-08-26 00:20:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文介紹了html5中將圖片的絕對(duì)路徑轉(zhuǎn)換成文件對(duì)象,分享給大家,具體如下:

將圖片的絕對(duì)路徑轉(zhuǎn)換成base64編碼,請(qǐng)看這篇文章

我們先來(lái)理解基本知識(shí)點(diǎn):

1. 理解HTML5中的FileList對(duì)象與file對(duì)象。

在HTML5中,F(xiàn)ileList對(duì)象表示用戶(hù)選擇的文件列表。通過(guò)添加multipe屬性,file控件內(nèi)允許一次選擇多個(gè)文件??丶?nèi)的每一個(gè)用戶(hù)選擇的文件都是一個(gè)file對(duì)象,而FileList對(duì)象則是file對(duì)象的列表。代表用戶(hù)選擇的所有文件。我們先來(lái)看一個(gè)簡(jiǎn)單的demo,看下file文件對(duì)象有哪些屬性。如下代碼:

<!DOCTYPE html><html>  <head>    <title>filesystem:URL</title>  </head>  <body>    <div>      <label>選擇:</label>      <input type='file' multiple id="file" />      <input type="button" value="文件上傳" onClick="showFile()" />    </div>    <script>      function showFile() {        var files = document.getElementById('file').files;  // 返回所有被選擇的文件        for (var i = 0, ilen = files.length; i < ilen; i++) {          // 打印出單個(gè)文件對(duì)象的信息          console.log(files[i]);          /*             * 打印的信息如下:           File {            lastModified: 1457946612000            lastModifiedDate: Mon Mar 14 2016 17:10:12 GMT+0800 (CST) {}            name: "test.html"            size: 796            type: "text/html"            webkitRelativePath: ""           */          /*  如果上傳的是一張圖片的話(huà),會(huì)返回如下信息的            File {              lastModified: 1466907500000              lastModifiedDate: Sun Jun 26 2016 10:18:20 GMT+0800 (CST) {}              name: "a.jpg"              size: 23684              type: "image/jpeg"              webkitRelativePath: ""            }          */          /*           因此 如果需要判斷該上傳的文件是不是圖像文件的話(huà),可以根據(jù)type類(lèi)型來(lái)判斷如下:           var file = files[i];           if (!/image///w+/.test(file.type)) {              console.log('該文件不是圖像文件');           } else {              console.log('該文件是圖像文件');           }           但是如果只讓傳圖片的話(huà),可以在image控件添加一個(gè)屬性 accept="image/*" 即可;我們可以如下寫(xiě)代碼:           <input type='file' multiple accept = 'image/gif,image/jpeg,image/jpg,image/png' />           */        }      }    </script>  </body></html>

2. 理解Blob對(duì)象

要點(diǎn):在HTML5中,新增一個(gè)Blob對(duì)象,代表原始二進(jìn)制數(shù)據(jù),其實(shí)file對(duì)象也是繼承了Blob對(duì)象。

Blob對(duì)象有兩個(gè)屬性,size屬性表示一個(gè)Blob對(duì)象的字節(jié)長(zhǎng)度,type屬性表示Blob的MIME類(lèi)型,如果是未知類(lèi)型,則返回一個(gè)空字符串。

請(qǐng)看如下代碼:

<!DOCTYPE html><html>  <head>    <title>filesystem:URL</title>  </head>  <body>    <div>      <label>選擇文件:</label>      <input type="file" id="file" />      <input type="button" value="顯示文件信息" onClick="showFileType()" />      <p>文件字節(jié)長(zhǎng)度: <span id="size"></span></p>      <p>文件類(lèi)型:<span id="type"></span></p>    </div>    <script>      function showFileType() {        var file;        // 獲取用戶(hù)選擇的第一個(gè)文件        file = document.getElementById('file').files[0];        var size = document.getElementById('size');        var type = document.getElementById('type');        // 顯示文件字節(jié)的長(zhǎng)度        size.innerHTML = file.size;        // 顯示文件的類(lèi)型        type.innerHTML = file.type;        // 打開(kāi)控制臺(tái) 查看返回的file對(duì)象        console.log(file);      }    </script>      </body></html>

注意:Blob和File是可以同時(shí)使用的,可以使用FileReader從Blob中讀取數(shù)據(jù)。

下面是一段絕對(duì)路徑的圖片地址轉(zhuǎn)換為base64編碼的圖片,然后將base64編碼的圖片轉(zhuǎn)換成blob對(duì)象。代碼如下:

<!DOCTYPE html><html>  <head>    <title>將以base64的圖片url數(shù)據(jù)轉(zhuǎn)換為Blob</title>  </head>  <body>    <script>      /**         * 將以base64的圖片url數(shù)據(jù)轉(zhuǎn)換為Blob         * @param urlData         * 用url方式表示的base64圖片數(shù)據(jù)         */        function convertBase64UrlToBlob(base64){         var urlData =  base64.dataURL;        var type = base64.type;        var bytes = window.atob(urlData.split(',')[1]); //去掉url的頭,并轉(zhuǎn)換為byte        //處理異常,將ascii碼小于0的轉(zhuǎn)換為大于0          var ab = new ArrayBuffer(bytes.length);          var ia = new Uint8Array(ab);          for (var i = 0; i < bytes.length; i++) {              ia[i] = bytes.charCodeAt(i);          }          return new Blob( [ab] , {type : type});        }      /*        * 圖片的絕對(duì)路徑地址 轉(zhuǎn)換成base64編碼 如下代碼:        */      function getBase64Image(img) {        var canvas = document.createElement("canvas");        canvas.width = img.width;        canvas.height = img.height;        var ctx = canvas.getContext("2d");        ctx.drawImage(img, 0, 0, img.width, img.height);        var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();        var dataURL = canvas.toDataURL("image/"+ext);        return {          dataURL: dataURL,          type: "image/"+ext        };      }      var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg";      var image = new Image();      image.crossOrigin = '';      image.src = img;      image.onload = function(){        var base64 = getBase64Image(image);        console.log(base64);        /*         打印信息如下:         {          dataURL: "data:image/png;base64,xxx"          type: "image/jpg"         }         */        var img2 = convertBase64UrlToBlob(base64);        console.log(img2);        /*         打印信息如下:         Blob {size: 9585, type: "image/jpg"}         */      }     </script>  </body></html>

注意:在HTML5中,新增一個(gè)Blob對(duì)象,代表原始二進(jìn)制數(shù)據(jù),其實(shí)file對(duì)象也是繼承了Blob對(duì)象。因此我們可以使用圖片的絕對(duì)地址轉(zhuǎn)換成文件對(duì)象。

因此我們可以使用絕對(duì)地址的圖片轉(zhuǎn)換成file文件對(duì)象,詳細(xì)的demo可以看我git上圖片上傳控件,該插件先是圖片上傳支持,然后突然發(fā)現(xiàn)到編輯頁(yè)面的時(shí)候,需要顯示默認(rèn)的圖片,也可以同時(shí)支持在默認(rèn)顯示圖片的情況下繼續(xù)上傳新圖片,或者刪除所有的圖片,但是開(kāi)發(fā)人員給我的只有圖片的絕對(duì)地址,所以就一直想通過(guò)圖片的絕對(duì)地址如何轉(zhuǎn)換成file對(duì)象,如果不轉(zhuǎn)成file對(duì)象的話(huà),使用這句代碼的時(shí)候 var reader = new FileReader(); 會(huì)報(bào)錯(cuò),因此可以使用我們上面講的blob對(duì)象先轉(zhuǎn)換成blob對(duì)象,然后就可以使用文件操作對(duì)象 fileReader。

詳細(xì)的代碼,請(qǐng)看我git上的 圖片上傳控件(https://github.com/tugenhua0707/html5UploadImage) , 效果查看 https://tugenhua0707.github.io/html5UploadImage/index.html

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到HTML教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美一区二区三区在线视频| 日韩精品一区二区三区中文字幕| 久久99国内精品| 国产精品视频线看| 日韩久久久久久久久久| www欧美在线观看| 国内精品小视频在线观看| 精品视频—区二区三区免费| 欧美极度另类videos高清| 老司机免费视频一区二区| 免费午夜视频在线观看| 国内在线观看一区二区三区| 99亚洲男女激情在线观看| www.嫩草免费在线观看| 福利av痴女| 91成人精品网站| 麻豆mv在线观看| 印度美女freesex性hd| 能直接看的av| a级片在线观看视频| 国产在线精品国自产拍免费| 国产精品**亚洲精品| 波多野结衣久久精品| 午夜精品免费看| www成人免费观看| 国产欧美一区二区色老头| 久久美女视频| 国产精品扒开腿做爽爽爽视频软件| 欧美大陆一区二区| 欧美人与性动交a欧美精品| 欧美性老头oldtight| 日韩专区第一页| 欧美激情一二区| 亚洲裸体俱乐部裸体舞表演av| 99免在线观看免费视频高清| 欧美与黑人午夜性猛交久久久| 色呦呦网站在线观看| 午夜精品久久久久久久96蜜桃| 精品一区二区在线视频| 欧美成人午夜免费视在线看片| 日本蜜桃在线观看视频| 濑亚美莉vs黑人在线观看| 狠狠入ady亚洲精品经典电影| 夜夜狂射影院| 欧美一级大片在线免费观看| 久草国产视频| 亚洲欧美激情视频在线观看一区二区三区| 久久精品久久99精品久久| 中国一级黄色录像| 国产对白在线播放| www.亚洲一区二区| 国产欧美一区二区三区网站| 欧美无砖专区免费| 日本中文字幕一区二区视频| 免费成人在线影院| 国产日韩网站| 日本一极黄色片| 成人亚洲欧美一区二区三区| 99a精品视频在线观看| 久久久久久久久久久久av| 91精品国产色综合久久不卡98| 亚洲影院高清在线| 亚洲免费一级视频| 国产精品正在播放| 欧美日韩和欧美的一区二区| 欧美无毛视频| 日本韩国精品在线| 九色成人搞黄网站| 天堂视频中文在线| 日韩二区三区在线观看| 一本色道久久99精品综合| aa亚洲一区一区三区| 欧美大片免费播放器| 一区二区在线| 亚洲欧美日韩动漫| 久久欧美一区二区| 国内精品久久久久伊人av| 午夜黄色小视频| 亚洲va欧美va国产综合剧情| 免费在线看黄| 欧美 激情 在线| 国产亚洲精品久久久久久久| 国产成人在线免费视频| 国产偷国产偷亚洲高清97cao| 日韩在线视频线视频免费网站| 色猫猫成人app| 欧美人体视频| 欧美在线免费看视频| 中文字幕精品一区二区三区在线| 91av在线免费观看视频| h片在线观看下载| 精品久久久久久无| 综合av色偷偷网| 欧美性xxxxx极品| 青草视频在线观看视频| 欧美色xxx| 欧美日韩一区二区三区在线| 国产亚洲va综合人人澡精品| 青青草原av在线播放| 成品人视频ww入口| 精品香蕉在线观看视频一| 久久超碰99| 午夜精品久久久久99热蜜桃导演| 亚洲深深色噜噜狠狠爱网站| 在线免费视频一区二区| 国产成人艳妇aa视频在线| 成年人免费看的视频| 天天干狠狠干| 老头老太做爰xxx视频| 一道本无吗一区| av网站在线免费| 尤物国产在线观看| 国产男女免费视频| 欧美性老头oldtight| 久久伊人一区| 动漫3d精品一区二区三区| 亚洲狼人综合| 免费看成年视频网页| 麻豆国产传媒av福利| 亚洲视频自拍偷拍| 18岁成年人网站| 好看不卡的中文字幕| 99久久久精品免费观看国产| 一区二区欧美亚洲| 免费黄色av| 插菊花综合1| 国产一级免费av| 国产1区2区在线观看| 四川一级毛毛片| 亚洲国产欧美一区二区三区久久| 97精品一区二区三区| 在线天堂视频| 国产欧美在线一区二区| 美女翘臀白浆直流视频| 日本美女高潮视频| 亚洲欧美另类在线观看| av动漫在线观看| 亚洲亚洲人成综合网络| 成人在线免费观看av| 狠狠一区二区三区| 国产精品日日摸夜夜爽| 亚洲国产精品无码观看久久| 大桥未久女教师av一区二区| 高清国产在线一区| 色综合视频一区二区三区44| 欧美一区二区三区久久精品茉莉花| 日本不卡免费播放| 一区二区三区四区高清视频| 久久久久久久久久影视| 青青草在线免费观看| 成人av在线亚洲| 国产美女av一区二区三区| 日韩一区精品视频| 法国空姐在线观看免费| 欧美岛国在线观看| 亚洲jizzjizz日本少妇| 国产精品极品美女在线观看| 亚洲成a人片| 国产成人亚洲综合无码| 欧美人成在线观看ccc36| 亚州成人在线电影| 色一情一乱一乱一区91av| xx视频.9999.com| 亚洲综合色丁香婷婷六月图片| 97av视频在线| 久无码久无码av无码| 一区二区三区电影| 亚洲欧美乱综合图片区小说区| 亚洲伊人色欲综合网| 日韩欧美国产综合一区| 久久精品国产精品亚洲精品| 99精品热6080yy久久| 国产精品美女久久久久av超清| 国产精品乱码视频| www.撸撸| 日韩一卡二卡在线| 亚洲天堂激情| 动漫性做爰视频| 欧美va天堂在线| 午夜精品久久久久久久99水蜜桃| 国产一在线精品一区在线观看| 伊人蜜桃色噜噜激情综合| 91嫩草香蕉| 欧美色精品天天在线观看视频| 91免费综合在线| 2021久久国产精品不只是精品| 国产女同性恋一区二区| 扒开jk护士狂揉免费| 国产成人精品亚洲精品色欲| av天堂永久资源网| 精品一区二区电影| 中文字幕 视频一区| 欧美午夜精品久久久久免费视| 国产va在线| 一级一级黄色片| 天堂中文av在线| 人妻一区二区视频| 亚洲欧洲无码一区二区三区| 久久人人爽人人爽爽久久| 国产黄色av免费看| 国产成人涩涩涩视频在线观看| 欧美一卡2卡三卡4卡5免费| 国产欧美最新羞羞视频在线观看| 黄色99视频| 精品国产免费人成电影在线观看四季| 日本在线免费观看| 欧美成va人片在线观看| 69国产成人精品视频软件| 欧美一区二区在线不卡| 久久久久久久波多野高潮日日| 精品国产视频一区二区三区| 伊人久久综合97精品| 天堂亚洲精品| 国产精品久久久久久无人区| 国产xxxxx视频| 亚洲国产精品久久人人爱蜜臀| 女同互忝互慰dv毛片观看| 久久久久五月天| 老少交欧美另类| 日韩经典在线视频| 成人美女视频| 最近更新的2019中文字幕| 国产蜜臀97一区二区三区| 激情在线视频播放| 国产探花视频在线播放| 色婷婷热久久| 五月天婷婷久久| 国产精品黄页网站在线播放免费| 亚洲人成人无码网www国产| 精品国产一区二区在线| 91传媒免费视频| av黄色免费在线观看| 91精品国产91热久久久做人人| 91一区在线观看| 91久久亚洲| 欧美日韩久久久久| 国产精品电影| 亚洲天堂网一区二区| 国模精品一区二区三区| 999福利在线视频| 亚洲国产精品久久久久秋霞蜜臀| 啊啊啊啊啊啊啊视频在线播放| 91国产一区| 9色在线视频网站| zjzjzjzjzj亚洲女人| 成人手机在线| 免费aⅴ网站| 国语精品免费视频| 五月婷婷在线观看| 中文在线日韩| 欧美精品一卡两卡| av色综合久久天堂av综合| 亚洲色图欧美另类| 国产人妻精品一区二区三区| 日本最黄一级片免费在线| 国产伦精品一区二区三区视频金莲| 麻豆影院在线| 日韩精品欧美一区二区三区| 欧美一区免费视频| 亚洲欧美网站在线观看| 狠狠做深爱婷婷综合一区| 亚洲va电影大全| 久久久久久久久久97| 秋霞毛片久久久久久久久| 91免费在线观看网站| 夜夜摸视频网| 乱小说欧美综合| 亚洲制服欧美久久| 日韩在线激情视频| 午夜cr在线观看高清在线视频完整版| 免费看的黄色欧美网站| 亚洲国产sm捆绑调教视频| 久久五月婷婷丁香社区| 国内精品久久久久久99蜜桃| 亚洲 日韩 国产第一| av网站免费观看| 337p粉嫩色噜噜噜大肥臀| √天堂中文www官网| 欧美性高潮床叫视频| 日本高清免费电影一区| 麻豆av在线播放| 国产精品一久久香蕉国产线看观看| 中文字幕第80页| 午夜亚洲国产au精品一区二区| 国产亚洲综合视频| 国语自产精品视频在免费| 亚洲日本在线观看| 亚洲аv电影天堂网| 蜜桃精品视频在线| 国产精品777777| 中文字幕在线资源| 国产av无码专区亚洲精品| 精品在线视频一区二区| 欧美一区亚洲一区| 禁久久精品乱码| 亚洲一卡久久| 日韩在线不卡一区| 二区视频在线观看| 色悠悠国产精品| 国产又粗又猛又爽又黄的视频小说| 瑟瑟网站在线观看| 精品福利一二区| 亚洲一区二区三区四区五区中文| www.aqdy爱情电影网| 免费中文日韩| 欧美三级美国一级| 一区二区欧美激情| 亚洲精品国产一区二区| 女人18毛片毛片毛片毛片区二| 丁香婷婷深情五月亚洲| 欧美~级网站不卡| 久久久噜久噜久久综合| 婷婷丁香久久| 一卡二卡3卡四卡高清精品视频| 亚洲国产视频一区二区三区| 成年人性生活视频| 国产大陆a不卡| 在线看片线路1| 亚洲AV成人无码一二三区在线| 国内毛片毛片毛片毛片| 中文字幕亚洲一区二区av在线| 日本少妇激三级做爰在线| 欧美日韩视频一区二区| 国产麻豆精品久久| 亚洲国产精彩中文乱码av在线播放| 26uuu精品一区二区在线观看| 欧美精品一级片| 国产十六处破外女视频|