【问题标题】:Get multimedia component byte array using Tridion Anguilla framework?使用 Tridion Anguilla 框架获取多媒体组件字节数组?
【发布时间】:2012-11-20 09:15:35
【问题描述】:

是否可以使用 Anguilla JavaScript API 获取存储在 Tridion 中的图像的字节数组?我想在 GUI 扩展弹出窗口中显示图像。

【问题讨论】:

    标签: tridion


    【解决方案1】:

    我能想到的最简单的方法是使用这样的 URL 加载 MMC:

    http://<hostname>/WebUI/Editors/CME/icon.png?uri=tcm:2-1151
    

    如果您使用这种方法,字节的实际加载与 Tridion 无关:您只是从 URL 加载图像。

    您可能希望在 JavaScript 中构建 URL,因此请从以下内容开始(我无耻地从源代码中复制了该内容):

    p.multimediaUrl = $display.getMultimediaHandlerPath() + "?uri={0}";
    

    更新

    像往常一样,Mozilla Developer Connection 有一个很棒的example on loading binary data with XMLHttpRequest。应用到这种情况,我好像用这个sn-p获取数据:

    var arraybuffer;
    var xhr = new XMLHttpRequest();
    xhr.open("GET", $display.getMultimediaHandlerPath() + '?uri==tcm%3A2-1151', true);
    xhr.responseType = "arraybuffer"; 
    xhr.onload = function(e) {
      arraybuffer = xhr.response; // not responseText
    }
    xhr.send();    
    

    【讨论】:

    • 是否使用原图尺寸?
    • 根据我的测试,它确实会返回原始大小的图像,但您可以为其提供参数来控制大小。我从我的服务器上抓取的一个例子:http://&lt;hostname&gt;/WebUI/Editors/CME/icon.png?target=view&amp;maxwidth=320&amp;maxheight=200&amp;uri=tcm%3A2-1151&amp;mode=thumb&amp;modified=2012-07-23T21:14:39。我通过搜索getMultimediaHandlerPath()的源代码发现了一些额外的参数,例如target=download
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 2013-01-16
    • 2012-08-03
    • 1970-01-01
    • 2012-10-03
    相关资源
    最近更新 更多