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

    1. <legend id='pqUMt'><style id='pqUMt'><dir id='pqUMt'><q id='pqUMt'></q></dir></style></legend>

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

      1. 使用 fetch API 请求 blob 图像并转换为 base64

        时间:2023-10-02

          <legend id='sZeAD'><style id='sZeAD'><dir id='sZeAD'><q id='sZeAD'></q></dir></style></legend>
            <tfoot id='sZeAD'></tfoot>

              <tbody id='sZeAD'></tbody>
          • <i id='sZeAD'><tr id='sZeAD'><dt id='sZeAD'><q id='sZeAD'><span id='sZeAD'><b id='sZeAD'><form id='sZeAD'><ins id='sZeAD'></ins><ul id='sZeAD'></ul><sub id='sZeAD'></sub></form><legend id='sZeAD'></legend><bdo id='sZeAD'><pre id='sZeAD'><center id='sZeAD'></center></pre></bdo></b><th id='sZeAD'></th></span></q></dt></tr></i><div id='sZeAD'><tfoot id='sZeAD'></tfoot><dl id='sZeAD'><fieldset id='sZeAD'></fieldset></dl></div>
            1. <small id='sZeAD'></small><noframes id='sZeAD'>

                • <bdo id='sZeAD'></bdo><ul id='sZeAD'></ul>

                  本文介绍了使用 fetch API 请求 blob 图像并转换为 base64的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一些图像将显示在 React 应用程序中.我向服务器执行 GET 请求,该服务器返回 BLOB 格式的图像.然后我将这些图像转换为 base64.最后,我将这些 base64 字符串设置在图像标签的 src 属性中.

                  I have some images that will be displayed in a React app. I perform a GET request to a server, which returns images in BLOB format. Then I transform these images to base64. Finally, i'm setting these base64 strings inside the src attribute of an image tag.

                  最近我开始使用 Fetch API.我想知道是否有办法在一次"中进行转换.

                  Recently I've started using the Fetch API. I was wondering if there is a way to do the transforming in 'one' go.

                  下面是一个例子来解释我到目前为止的想法和/或如果这甚至可以通过 Fetch API 实现.我还没有在网上找到任何东西.

                  Below an example to explain my idea so far and/or if this is even possible with the Fetch API. I haven't found anything online yet.

                    let reader = new window.FileReader();
                    fetch('http://localhost:3000/whatever')
                    .then(response => response.blob())
                    .then(myBlob => reader.readAsDataURL(myBlob))
                    .then(myBase64 => {
                      imagesString = myBase64
                    }).catch(error => {
                      //Lalala
                    })
                  

                  推荐答案

                  FileReader.readAsDataURL 的返回不是promise.您必须按照旧方式进行操作.

                  The return of FileReader.readAsDataURL is not a promise. You have to do it the old way.

                  fetch('http://localhost:3000/whatever')
                  .then( response => response.blob() )
                  .then( blob =>{
                      var reader = new FileReader() ;
                      reader.onload = function(){ console.log(this.result) } ; // <--- `this.result` contains a base64 data URI
                      reader.readAsDataURL(blob) ;
                  }) ;
                  

                  通用功能:

                  function urlContentToDataUri(url){
                      return  fetch(url)
                              .then( response => response.blob() )
                              .then( blob => new Promise( callback =>{
                                  let reader = new FileReader() ;
                                  reader.onload = function(){ callback(this.result) } ;
                                  reader.readAsDataURL(blob) ;
                              }) ) ;
                  }
                  
                  //Usage example:
                  urlContentToDataUri('http://example.com').then( dataUri => console.log(dataUri) ) ;
                  
                  //Usage example using await:
                  let dataUri = await urlContentToDataUri('http://example.com') ;
                  console.log(dataUri) ;
                  

                  这篇关于使用 fetch API 请求 blob 图像并转换为 base64的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:fetch 函数返回 Promise &lt;pending&gt; 下一篇:Django 使用 Fetch 对 POST 请求返回 403 错误

                  相关文章

                  <tfoot id='CNCOI'></tfoot>

                      <legend id='CNCOI'><style id='CNCOI'><dir id='CNCOI'><q id='CNCOI'></q></dir></style></legend>
                    1. <i id='CNCOI'><tr id='CNCOI'><dt id='CNCOI'><q id='CNCOI'><span id='CNCOI'><b id='CNCOI'><form id='CNCOI'><ins id='CNCOI'></ins><ul id='CNCOI'></ul><sub id='CNCOI'></sub></form><legend id='CNCOI'></legend><bdo id='CNCOI'><pre id='CNCOI'><center id='CNCOI'></center></pre></bdo></b><th id='CNCOI'></th></span></q></dt></tr></i><div id='CNCOI'><tfoot id='CNCOI'></tfoot><dl id='CNCOI'><fieldset id='CNCOI'></fieldset></dl></div>

                        <bdo id='CNCOI'></bdo><ul id='CNCOI'></ul>
                    2. <small id='CNCOI'></small><noframes id='CNCOI'>