久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

  • <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="qwawimqqmiuu" id='rDLDg'><tfoot id='rDLDg'></tfoot><dl id='rDLDg'><fieldset id='rDLDg'></fieldset></dl></div>

        從 XHR 請(qǐng)求中獲取 BLOB 數(shù)據(jù)

        Getting BLOB data from XHR request(從 XHR 請(qǐng)求中獲取 BLOB 數(shù)據(jù))

        <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="qwawimqqmiuu" id='rdZ3Y'><tfoot id='rdZ3Y'></tfoot><dl id='rdZ3Y'><fieldset id='rdZ3Y'></fieldset></dl></div>

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

                  本文介紹了從 XHR 請(qǐng)求中獲取 BLOB 數(shù)據(jù)的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

                  問(wèn)題描述

                  var xhr = new XMLHttpRequest();xhr.open('GET', 'http://static.reddit.com/reddit.com.header.png', true);xhr.responseType = 'arraybuffer';xhr.onload = 函數(shù)(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);警報(bào)(base64);}};xhr.send();

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

                  從這里的評(píng)論中閱讀,它指出:

                  <塊引用>

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

                  但是,blob 只是 [object blob],而我需要從圖像中獲取二進(jìn)制文件,以便將其轉(zhuǎn)換為 base64 并在 img 中顯示使用數(shù)據(jù)標(biāo)記.

                  有人知道如何實(shí)現(xiàn)嗎?

                  提前謝謝你!

                  解決方案

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

                  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';//當(dāng)請(qǐng)求準(zhǔn)備好時(shí)處理響應(yīng).xhr.onload = 函數(shù)(e){如果(this.status == 200){//從返回的數(shù)據(jù)創(chuàng)建一個(gè)二進(jìn)制字符串,然后將其編碼為數(shù)據(jù) URL.var uInt8Array = new Uint8Array(this.response);var i = uInt8Array.length;var binaryString = new Array(i);當(dāng)我 - ){binaryString[i] = String.fromCharCode(uInt8Array[i]);}var data = binaryString.join('');var base64 = window.btoa(數(shù)據(jù));document.getElementById("myImage").src="data:image/png;base64," + base64;}};xhr.send();

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

                  var xhr = new XMLHttpRequest();xhr.open('get', 'doodle.png', true);//直接將數(shù)據(jù)作為 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(); 
                  

                  這篇關(guān)于從 XHR 請(qǐng)求中獲取 BLOB 數(shù)據(jù)的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

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

                  相關(guān)文檔推薦

                  Browser waits for ajax call to complete even after abort has been called (jQuery)(即使在調(diào)用 abort (jQuery) 之后,瀏覽器也會(huì)等待 ajax 調(diào)用完成)
                  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 無(wú)法加載,請(qǐng)求的資源上不存在“Access-Control-Allow-Origin標(biāo)頭) - IT屋-程序員軟件開發(fā)技術(shù)分
                  Is it possible for XHR HEAD requests to not follow redirects (301 302)(XHR HEAD 請(qǐng)求是否有可能不遵循重定向 (301 302))
                  XMLHttpRequest 206 Partial Content(XMLHttpRequest 206 部分內(nèi)容)
                  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="qwawimqqmiuu" id='c8JZ2'><tfoot id='c8JZ2'></tfoot><dl id='c8JZ2'><fieldset id='c8JZ2'></fieldset></dl></div>
                              <tbody id='c8JZ2'></tbody>

                            <tfoot id='c8JZ2'></tfoot>
                            主站蜘蛛池模板: 日本色高清 | 亚洲欧美在线观看 | 三级黄色大片网站 | 中文字幕在线免费视频 | 久久精品99 | 欧美视频第三页 | av黄色在线观看 | 亚洲精品乱码8久久久久久日本 | 日本精品一区二区 | 国产精品99久久久久久久vr | 成人精品一区二区 | 中文字幕在线观看成人 | 日韩欧美一区二区三区免费观看 | 日韩免费在线 | 午夜精品久久 | 精品国产一区一区二区三亚瑟 | 久久精品亚洲欧美日韩精品中文字幕 | 99精品一区 | 精品亚洲一区二区 | 日本高清不卡视频 | 91亚洲一区 | 黄色一级大片在线免费看产 | 国产欧美精品 | 亚洲国产精品一区二区三区 | 国产精久久久久久久妇剪断 | 亚洲国产一区二区三区四区 | 国产精品美女www爽爽爽 | 国产 欧美 日韩 一区 | 久久久www成人免费无遮挡大片 | 欧美性tv | 欧美激情在线精品一区二区三区 | www.成人.com| 一级黄色片一级黄色片 | 亚洲精品在线免费看 | 国产一区二区三区在线看 | 天天草草草 | 伊人伊人网 | 久草久草久草 | 夜夜艹 | 91 中文字幕 | 免费v片 |