【问题标题】:Instantiating Blobs in dartlang在 dartlang 中实例化 Blob
【发布时间】:2012-06-26 06:24:44
【问题描述】:

最近我一直在努力在 dartlang 中实例化 Blob,但我想出了如何在 8640 版中实现它

对于那些感兴趣的人(我在网上的任何地方都找不到示例) 我这样做了:

HttpRequest req = new HttpRequest(); 
FileReader fileReader = new FileReader(); 
req.open("GET", "http://...", true); 
req.responseType="blob"; 
req.overrideMimeType("image/png"); 
req.on.load.add( (event) { 
  if(req.readyState==4) { 
   Blob blob = req.response; // note NOT req.responseBlob 
    fileReader.on.load.add( (evt) { 
      document.query('#myimage').src=evt.target.result; 
    }); 
    fileReader.readAsDataURL(blob); 
  } 
}); 
req.send(); 

我希望这对某人有帮助:)

【问题讨论】:

  • 很好的例子。 Dart 编辑器标记该行:document.query('#myimage').src= evt.target.result; 并带有“结果不是 EventTarget 的成员”警告;我们可以通过将行替换为:document.query('#myimage').src= (evt.target as FileReader).result; 来删除它(如果我们有点痴迷的话)
  • ...或者只是document.query('#myimage').src = fileReader.result;,因为它已经被命名...

标签: dart dart-html


【解决方案1】:

如果有人像我一样来到这里试图弄清楚如何调用 Blob 构造函数,您实际上需要向它提供一个列表列表(即 List<List<int>>)。

所以,如果你有一个整数列表:

var binary = [1, 2, 3];

你将它传递给Blob 构造函数:

var blorp = new Blob([binary]);

调用var blorp = new Blob(binary); 会导致一条令人困惑的消息,声称构造函数需要String

【讨论】:

    【解决方案2】:

    从上面问题中嵌入的答案:

    HttpRequest req = new HttpRequest(); 
    FileReader fileReader = new FileReader(); 
    req.open("GET", "http://...", true); 
    req.responseType="blob"; 
    req.overrideMimeType("image/png"); 
    req.on.load.add( (event) { 
      if(req.readyState==4) { 
       Blob blob = req.response; // note NOT req.responseBlob 
        fileReader.on.load.add( (evt) { 
          document.query('#myimage').src=evt.target.result; 
        }); 
        fileReader.readAsDataURL(blob); 
      } 
    }); 
    req.send(); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 2017-02-02
      • 2019-11-04
      相关资源
      最近更新 更多