pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  • <legend id='rDLDg'><style id='rDLDg'><dir id='rDLDg'><q id='rDLDg'></q></dir></style></legend><tfoot id='rDLDg'></tfoot>

        <bdo id='rDLDg'></bdo><ul id='rDLDg'></ul>

        <small id='rDLDg'></small><noframes id='rDLDg'>

      1. <i id='rDLDg'><tr id='rDLDg'><dt id='rDLDg'><q id='rDLDg'><span id='rDLDg'><b id='rDLDg'><form id='rDLDg'><ins id='rDLDg'></ins><ul id='rDLDg'></ul><sub id='rDLDg'></sub></form><legend id='rDLDg'></legend><bdo id='rDLDg'><pre id='rDLDg'><center id='rDLDg'></center></pre></bdo></b><th id='rDLDg'></th></span></q></dt></tr></i><div class="rblrfl5" id='rDLDg'><tfoot id='rDLDg'></tfoot><dl id='rDLDg'><fieldset id='rDLDg'></fieldset></dl></div>

        從 XHR 請求中獲取 BLOB 數據

        Getting BLOB data from XHR request(從 XHR 請求中獲取 BLOB 數據)

        <small id='rdZ3Y'></small><noframes id='rdZ3Y'>

            <tbody id='rdZ3Y'></tbody>
            <bdo id='rdZ3Y'></bdo><ul id='rdZ3Y'></ul>
          • <legend id='rdZ3Y'><style id='rdZ3Y'><dir id='rdZ3Y'><q id='rdZ3Y'></q></dir></style></legend>

            <i id='rdZ3Y'><tr id='rdZ3Y'><dt id='rdZ3Y'><q id='rdZ3Y'><span id='rdZ3Y'><b id='rdZ3Y'><form id='rdZ3Y'><ins id='rdZ3Y'></ins><ul id='rdZ3Y'></ul><sub id='rdZ3Y'></sub></form><legend id='rdZ3Y'></legend><bdo id='rdZ3Y'><pre id='rdZ3Y'><center id='rdZ3Y'></center></pre></bdo></b><th id='rdZ3Y'></th></span></q></dt></tr></i><div class="h7vjhnj" id='rdZ3Y'><tfoot id='rdZ3Y'></tfoot><dl id='rdZ3Y'><fieldset id='rdZ3Y'></fieldset></dl></div>

              1. <tfoot id='rdZ3Y'></tfoot>

                  本文介紹了從 XHR 請求中獲取 BLOB 數據的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  var xhr = new XMLHttpRequest();xhr.open('GET', 'http://static.reddit.com/reddit.com.header.png', true);xhr.responseType = 'arraybuffer';xhr.onload = 函數(e){如果(this.status == 200){var uInt8Array = new Uint8Array(this.response);var byte3 = uInt8Array[4];var bb = new WebKitBlobBuilder();bb.append(xhr.response);var blob = bb.getBlob('image/png');var base64 = window.btoa(blob);警報(base64);}};xhr.send();

                  基本上,我在這里要做的是檢索圖像,并將其轉換為 base64.

                  從這里的評論中閱讀,它指出:

                  <塊引用>

                  當然.在獲取資源作為 ArrayBuffer 后,從它.一旦你有了它,你可以直接對文件/blob進行base64編碼window.btoa()FileReader.readAsDataURL()."

                  但是,blob 只是 [object blob],而我需要從圖像中獲取二進制文件,以便將其轉換為 base64 并在 img 中顯示使用數據標記.

                  有人知道如何實現嗎?

                  提前謝謝你!

                  解決方案

                  不要在 Chrome 中使用 BlobBuilder(在 OSX Chrome、Firefox 12、Safari 6、iOS Chrome、iOS Safari 中測試):

                  ex1:http://jsfiddle.net/malraux/xGUsu/(原理)p>

                  ex2:http://jsfiddle.net/xGUsu/78/(使用完整示例)

                  var xhr = new XMLHttpRequest();xhr.open('GET', 'doodle.png', true);xhr.responseType = 'arraybuffer';//當請求準備好時處理響應.xhr.onload = 函數(e){如果(this.status == 200){//從返回的數據創建一個二進制字符串,然后將其編碼為數據 URL.var uInt8Array = new Uint8Array(this.response);var i = uInt8Array.length;var binaryString = new Array(i);當我 - ){binaryString[i] = String.fromCharCode(uInt8Array[i]);}var data = binaryString.join('');var base64 = window.btoa(數據);document.getElementById("myImage").src="data:image/png;base64," + base64;}};xhr.send();

                  注意:這段代碼現在已經超過 7 年了. 雖然它在大多數瀏覽器中仍然可以正常工作,但這里是基于 @TypeError 建議的更新版本這只適用于更現代的瀏覽器iOS Safari 可能例外(可能支持也可能不支持responseType = 'blob' - 確保測試!):

                  var xhr = new XMLHttpRequest();xhr.open('get', 'doodle.png', true);//直接將數據作為 Blob 加載.xhr.responseType = 'blob';xhr.onload = () =>{document.querySelector('#myimage').src = URL.createObjectURL(this.response);};xhr.send();

                  var xhr = new XMLHttpRequest();
                  xhr.open('GET', 'http://static.reddit.com/reddit.com.header.png', true);
                  
                  xhr.responseType = 'arraybuffer';
                  
                  xhr.onload = function(e) {
                    if (this.status == 200) {
                      var uInt8Array = new Uint8Array(this.response);
                      var byte3 = uInt8Array[4]; 
                  
                      var bb = new WebKitBlobBuilder();
                      bb.append(xhr.response);
                      var blob = bb.getBlob('image/png'); 
                      var base64 = window.btoa(blob);
                      alert(base64);
                  
                    }
                  };
                  
                  xhr.send();
                  

                  Basically, what I am trying to do here is retrieve an image, and convert it to base64.

                  From reading in the comments here, it states:

                  "Sure. After fetching a resource as an ArrayBuffer, create a blob from it. Once you have that, you could base64 encode the file/blob directly window.btoa() or FileReader.readAsDataURL()."

                  However, blob is just [object blob], while I need to get the binary from the image so I can convert it to base64 and display it in a img tag using data.

                  Anyone know how to achieve this?

                  Thank you in advance!

                  解決方案

                  Don't use BlobBuilder in Chrome (tested in OSX Chrome, Firefox 12, Safari 6, iOS Chrome, iOS Safari):

                  ex1 : http://jsfiddle.net/malraux/xGUsu/ (principle)

                  ex2: http://jsfiddle.net/xGUsu/78/ (working with full example)

                  var xhr = new XMLHttpRequest();
                  xhr.open('GET', 'doodle.png', true);
                  
                  xhr.responseType = 'arraybuffer';
                  
                  // Process the response when the request is ready.
                  xhr.onload = function(e) {
                    if (this.status == 200) {
                      // Create a binary string from the returned data, then encode it as a data URL.
                      var uInt8Array = new Uint8Array(this.response);
                      var i = uInt8Array.length;
                      var binaryString = new Array(i);
                      while (i--)
                      {
                        binaryString[i] = String.fromCharCode(uInt8Array[i]);
                      }
                      var data = binaryString.join('');
                  
                      var base64 = window.btoa(data);
                  
                      document.getElementById("myImage").src="data:image/png;base64," + base64;
                    }
                  };
                  
                  xhr.send();
                  

                  Note: This code is over 7 years old at this point. While it should still function in most browsers, here's an updated version based on a suggestion by @TypeError that will only work in more modern browsers with the possible exception of iOS Safari (which may or may not support responseType = 'blob' - make sure to test!):

                  var xhr = new XMLHttpRequest();
                  xhr.open('get', 'doodle.png', true);
                  
                  // Load the data directly as a Blob.
                  xhr.responseType = 'blob';
                  
                  xhr.onload = () => {
                    document.querySelector('#myimage').src = URL.createObjectURL(this.response);
                  };
                  
                  xhr.send(); 
                  

                  這篇關于從 XHR 請求中獲取 BLOB 數據的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Browser waits for ajax call to complete even after abort has been called (jQuery)(即使在調用 abort (jQuery) 之后,瀏覽器也會等待 ajax 調用完成)
                  JavaScript innerHTML is not working for IE?(JavaScript innerHTML 不適用于 IE?)
                  XMLHttpRequest cannot load, No #39;Access-Control-Allow-Origin#39; header is present on the requested resource(XMLHttpRequest 無法加載,請求的資源上不存在“Access-Control-Allow-Origin標頭) - IT屋-程序員軟件開發技術分
                  Is it possible for XHR HEAD requests to not follow redirects (301 302)(XHR HEAD 請求是否有可能不遵循重定向 (301 302))
                  XMLHttpRequest 206 Partial Content(XMLHttpRequest 206 部分內容)
                  Restrictions of XMLHttpRequest#39;s getResponseHeader()?(XMLHttpRequest 的 getResponseHeader() 的限制?)

                      <small id='c8JZ2'></small><noframes id='c8JZ2'>

                        • <bdo id='c8JZ2'></bdo><ul id='c8JZ2'></ul>
                          <legend id='c8JZ2'><style id='c8JZ2'><dir id='c8JZ2'><q id='c8JZ2'></q></dir></style></legend>

                          1. <i id='c8JZ2'><tr id='c8JZ2'><dt id='c8JZ2'><q id='c8JZ2'><span id='c8JZ2'><b id='c8JZ2'><form id='c8JZ2'><ins id='c8JZ2'></ins><ul id='c8JZ2'></ul><sub id='c8JZ2'></sub></form><legend id='c8JZ2'></legend><bdo id='c8JZ2'><pre id='c8JZ2'><center id='c8JZ2'></center></pre></bdo></b><th id='c8JZ2'></th></span></q></dt></tr></i><div class="l77lb7z" id='c8JZ2'><tfoot id='c8JZ2'></tfoot><dl id='c8JZ2'><fieldset id='c8JZ2'></fieldset></dl></div>
                              <tbody id='c8JZ2'></tbody>

                            <tfoot id='c8JZ2'></tfoot>
                            主站蜘蛛池模板: 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 方源木业官网-四川木门-全国木门专业品牌 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 昊宇水工|河北昊宇水工机械工程有限公司 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 北京工业设计公司-产品外观设计-产品设计公司-千策良品工业设计 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 学叉车培训|叉车证报名|叉车查询|叉车证怎么考-工程机械培训网 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 杭州双螺杆挤出机-百科| 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 二手色谱仪器,十万分之一分析天平,蒸发光检测器,电位滴定仪-湖北捷岛科学仪器有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 心得体会网_心得体会格式范文模板| 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 广西资质代办_建筑资质代办_南宁资质代办理_新办、增项、升级-正明集团 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 电缆桥架生产厂家_槽式/梯式_热镀锌线槽_广东东莞雷正电气 | 次氯酸钠厂家,涉水级次氯酸钠,三氯化铁生产厂家-淄博吉灿化工 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 365文案网_全网创意文案句子素材站 |