亚洲香蕉成人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ì)返回如下信息的            File {              lastModified: 1466907500000              lastModifiedDate: Sun Jun 26 2016 10:18:20 GMT+0800 (CST) {}              name: "a.jpg"              size: 23684              type: "image/jpeg"              webkitRelativePath: ""            }          */          /*           因此 如果需要判斷該上傳的文件是不是圖像文件的話,可以根據(jù)type類(lèi)型來(lái)判斷如下:           var file = files[i];           if (!/image///w+/.test(file.type)) {              console.log('該文件不是圖像文件');           } else {              console.log('該文件是圖像文件');           }           但是如果只讓傳圖片的話,可以在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ì)象的話,使用這句代碼的時(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ā)表
久久婷婷中文字幕| 日本一二三区在线观看| 中文字幕有码av| 理论片大全免费理伦片| 九九热视频在线免费观看| 狠狠躁天天躁日日躁欧美| 青青青草网站免费视频在线观看| 成人动漫网站在线观看| 一区二区在线不卡| 亚洲国产精品成人va在线观看| 在线观看三级视频| 日本aⅴ中文| 蜜臀aⅴ国产精品久久久国产老师| 精品国产一区久久| 成人精品视频| 日韩精品一区二区三区不卡| 国产精品久久国产精麻豆99网站| 欧美日韩一二三| 亚洲伦理精品| 日韩精品亚洲专区在线观看| 日韩久久久久久久久久久久| 日韩精品一线二线三线| 一本色道久久综合熟妇| 可以在线观看av的网站| 亚洲激情亚洲| 亚洲日本电影在线| 蜜桃a∨噜噜一区二区三区| 91精品产国品一二三产区| www.爱爱.com| 欧美日韩精品免费| 国产一区二区三区在线看麻豆| 欧美亚洲高清一区| 一区二区精品视频在线观看| h在线视频免费观看完整版| 成人精品影视| 亚洲国产精品一区二区三区| 精品一区二区三区中文字幕| 欧美视频免费看欧美视频| 黄在线观看在线播放720p| 国内一区二区三区精品视频| 国产男女猛烈无遮挡a片漫画| 国产精品久久亚洲7777| 国产精品 日韩| h网站免费观看| 久久精品99国产精| 国产欧美日韩综合| 在线看的你懂得| 日韩精品成人在线观看| 久久久久久无码午夜精品直播| 窝窝社区一区二区| 国产天堂视频在线观看| 欧美在线观看视频免费| 欧美一级视频免费在线观看| 电影一区中文字幕| 国产精品成人自拍| 一本色道久久88精品综合| 熟女av一区二区| 中文字幕人成不卡一区| 高清不卡一区二区在线| 瑟瑟视频在线免费观看| y111111国产精品久久久| 久久综合九色综合97婷婷女人| 超碰免费97在线观看| 国产成人禁片在线观看| 日韩特级毛片| 亚洲va韩国va欧美va| www.色亚洲| 青青草成人网| 色婷婷亚洲十月十月色天| 自拍偷拍亚洲精品| 少妇精品视频在线观看| 日韩亚洲国产中文字幕| 国产精品无码毛片| 麻豆明星ai换脸视频| 亚洲美免无码中文字幕在线| 在线观看岛国av| 亚洲经典一区二区三区| 欧美成人高清| 911亚洲精选| 免费看欧美黑人毛片| 亚洲国产综合在线看不卡| 精品一区二区三孕妇视频| 国产精品羞羞答答在线| 国产精品伦理| 亚洲pron| 国内精彩免费自拍视频在线观看网址| 在线观看 中文字幕| 欧美日韩亚洲综合一区二区三区| 欧美日韩黄色一区二区| 亚洲国产日日夜夜| 日本高清久久天堂| 国产一区在线观看麻豆| 91电影91视频| 亚洲一区二区三区四区电影| 电影亚洲精品噜噜在线观看| 四虎国产精品成人免费影视| 亚洲午夜电影在线观看| 国产成人精品一区二区三区视频| 波多野结衣在线观看一区| av电影在线观看一区二区三区| 国产激情视频在线观看| 蜜桃传媒一区二区亚洲av| 2019日本中文字幕| 国产精品宾馆在线精品酒店| av网站免费大全| 久久精品视频99| 国产91av在线播放| 中文字幕中文在线不卡住| 国产原创一区| 国产精品伦一区二区三级视频| 日本精品视频网站| 精品国产亚洲一区二区在线观看| 亚洲人成网站999久久久综合| 男女高潮又爽又黄又无遮挡| 亚洲人成亚洲精品| 同性gay免费| 一级特黄aaa大片在线观看| 区一区二日本| 欧美黑人乱大交| 91蜜桃在线免费视频| 一本色道a无线码一区v| 久久久www免费人成精品| 极品少妇xxxx偷拍精品少妇| 欧美日韩中文在线视频| 成人在线免费观看视视频| 精品亚洲aⅴ乱码一区二区三区| 可以直接在线观看的av| 91成人在线看| 国产又猛又黄的视频| 在线观看欧美一区二区| 中文字幕在线欧美| 韩国成人在线| 中文字幕在线网址| 91在线国产福利| av在线1区2区| 男女av在线| 亚洲黄色免费在线观看| 五月天婷婷综合社区| 成人一二三区视频| 久久男人天堂| 亚洲欧美日韩一区在线观看| www.一区| 91精品国产综合久久福利软件| 国内精品国产成人国产三级粉色| 在线亚洲人成| 丰满熟妇人妻中文字幕| 日韩有码在线电影| 午夜精品在线观看| 婷婷av一区二区三区| 免费在线中文字幕| 人人澡人人透人人爽| 中文.日本.精品| 成视人a免费观看视频| 国产伦精品一区二区三区照片| 91嫩草在线播放| 老司机凹凸av亚洲导航| 中文字幕区一区二区三| 国产麻豆一区二区三区精品视频| 波兰性xxxxx极品hd| 欧美三级 欧美一级| 中文字幕欧美人妻精品| 91在线网站视频| 亚洲肉体裸体xxxx137| 91福利电影| 91精品国产免费久久综合| 少妇久久久久久久| 欧美 日韩 国产 在线| 国产高清一区在线观看| 国产二级片在线| 欧美日韩视频免费| 久久久久久18| 久久久国产视频| 欧美最猛性xxxx| 深夜福利网站在线观看| 国产女主播在线观看| www国产亚洲精品久久网站| 亚洲黄色av一区| 日本视频一区二区三区| 99这里有精品视频| 四虎国产精品成人永久免费影视| 免费观看黄色网| 怡红院一区二区| 色婷婷综合久久久| 欧美久久久久免费| 中文字幕精品国产| 国产精品久久久久高潮| 年下总裁被打光屁股sp| 在线高清av| jizzjizz在线观看| 福利视频网站| 国产欧美综合在线观看第十页| 欧美色精品天天在线观看视频| 中文字幕xxx| 欧美视频一区二区| 免费国产成人av| 人妻夜夜爽天天爽| 欧美极品jizzhd欧美18| 综合天堂av久久久久久久| 人人狠狠综合久久亚洲婷| 日韩精品久久一区二区三区| 91网在线播放| 四虎海外永久免费网址| 日韩视频在线观看一区二区三区| 5g影院天天爽成人免费下载| 国产人妻精品一区二区三区不卡| 亚洲综合资源| 国产精品精品软件男同| 久久精品国产免费| 国产精品日韩欧美大师| 欧美人与性动交α欧美精品| 国产农村妇女毛片精品久久麻豆| 欧美黄色aaa| 神马一区二区三区| 国内在线免费高清视频| 91精品国产色综合久久不卡蜜臀| 精品电影一区二区三区| 粉嫩的18在线观看极品精品| 波多野结衣三级在线| 91国偷自产一区二区三区成为亚洲经典| 国产98色在线| 粉嫩精品久久99综合一区| 91丝袜呻吟高潮美腿白嫩在线观看| 在线国产一区| 樱花www成人免费视频| 国产不卡视频在线观看| 国模私拍一区二区| 久久草视频在线| 精品视频在线观看免费| 国产精品美腿一区在线看| 手机av在线免费观看| 野外性xxxxfreexxxxx欧美| 国产特黄在线| 国产999精品久久久久久绿帽| 国产午夜精品久久久久| 色婷婷精品大在线视频| 精品一区二区三区亚洲| 亚洲一区二区三区四区五区六区| 日韩电影在线看| 91香蕉嫩草影院入口| 日韩精品91亚洲二区在线观看| 黄大色黄女片18第一次| 每日更新av在线播放| 亚洲天堂视频网站| 波多野结衣中文字幕一区二区三区| 伊人五月天婷婷| 99免在线观看免费视频高清| 亚洲精品mv| 老司机午夜免费福利| 日韩一区二区在线免费观看| 国产毛片精品久久| 中文字幕亚洲一区二区三区五十路| 久久精品99国产| 久久国产精品1区2区3区网页| 亚洲天堂成人在线视频| 神马午夜在线视频| 国产精品亚洲视频在线观看| 精品不卡一区| 成人久久精品| 日本一区二区高清视频| 日本一本在线观看| 免费看成人哺乳视频网站| 国产精品日韩欧美一区| 国色天香一二三期区别大象| 91九色论坛| 成人在线观看一区| 天堂在线观看免费视频| 亚洲国产精品99| 99在线精品免费视频九九视| 亚洲成人在线电影| 免费观看日韩电影| 天天av导航| 久久国产手机看片| 亚洲视频在线观看一区二区| 国产精品99久久久久久久vr| 任你躁av一区二区三区| 日韩欧美激情| 亚洲欧洲另类国产综合| 国产婷婷成人久久av免费高清| 成人午夜精品久久久久久久蜜臀| 蜜臀久久99精品久久久酒店新书| 亚洲永久无码7777kkk| 国产无套精品一区二区三区| 欧美日韩午夜剧场| 国产精品亚洲综合色区韩国| www.久久撸.com| 亚洲精品午夜国产va久久成人| 成人乱色短篇合集| 欧美96一区二区免费视频| 日本高清不卡aⅴ免费网站| 99精品视频在线观看免费播放| 18禁免费观看网站| 97视频免费在线| 日韩欧美国产午夜精品| 三级影片在线看| 日韩美女国产精品| 欧美寡妇性猛交xxx免费| 国产精品久久久久久久7电影| 亚洲精品乱码久久久久久蜜桃91| videoxxxx另类日本极品| 色综合一区二区日本韩国亚洲| jizzjizzjizz国产| 亚洲av无一区二区三区久久| 久久久久久久久久美女| 亚洲一二三精品| 中文字幕剧情在线观看| 五月激情六月综合| 中文字幕av一区| 91麻豆国产福利在线观看宅福利| 亚洲品质自拍| 久久精品国产久精国产爱| 91亚洲精品乱码久久久久久蜜桃| 黑人巨大精品一区二区在线| 日韩美女在线| av观看网址| 色内内免费视频播放| 久久久精品视频成人| 91日本视频在线| 国产99视频精品免视看7| 亚洲韩国精品一区| 中文资源在线官网| 日韩欧美高清在线| 国产成人精彩在线视频九色| 国产精品97| 一区二区三区区四区播放视频在线观看| 一本大道香蕉8中文在线视频| 日韩欧美综合在线视频| 一区二区三区精品久久久| 欧美主播一区二区三区|