【问题标题】:CRM Dynamics:To pass arraybuffer to html web ressourceCRM Dynamics:将数组缓冲区传递给 html Web 资源
【发布时间】:2018-11-07 19:52:33
【问题描述】:

首先我正在开发 CRM Online 8.2

我正在尝试使用以下代码通过按钮下载文件: 第一:

 xhr.onload = function (e) {
            var arraybuffer = xhr.response;
            var fileArray = new Uint8Array(arraybuffer);
 var file = fileArray.buffer.slice(fileStart, lastBoundary);

然后:

 if (typeof window.navigator.msSaveBlob !== 'undefined') {

    window.navigator.msSaveBlob(blob, filename);
}
else {
    var blob = new Blob([file],
        {
            type: type
        });
    var URL = window.URL || window.webkitURL;
    var downloadUrl = URL.createObjectURL(blob);
    if (filename) {
        var a = document.createElement("a");
        if (typeof a.download === 'undefined') {
            window.location = downloadUrl;
        }
        else {
            a.href = downloadUrl;
            a.download = filename;
            document.body.appendChild(a);
            a.click();
        }

假设 Microsoft 不支持“document.createElement”,我找到了另一种解决方案,即使用包含下载的 Html 页面。

文件是一个数组缓冲区,所以我不能将它传递给函数:

Xrm.Utility.openWebResource('Shared/Download',customParameters,300,300);

因为 customParameters 不能只存储字符串。

你有什么想法来实现吗?

任你选择

萨德

【问题讨论】:

  • blob 来自哪里?
  • 它来自一个XMLHttpRequest,响应是一个arraybuffer: var arraybuffer = xhr.response; var fileArray = new Uint8Array(arraybuffer);
  • 我的意思是你下载的文件来自哪里?
  • 它来自另一个服务器,它没有保存在CRM中

标签: javascript html dynamics-crm arraybuffer


【解决方案1】:

好的,解决办法就是这样,我发现我们可以将arraybuffer转换为string,反之亦然。

/**
 * Convert an Uint8Array into a string.
 *
 * @returns {String}
 */
function Decodeuint8arr(uint8array){
    return new TextDecoder("utf-8").decode(uint8array);
}

/**
 * Convert a string into a Uint8Array.
 *
 * @returns {Uint8Array}
 */
function Encodeuint8arr(myString){
    return new TextEncoder("utf-8").encode(myString);
}

仅供参考,如果arraybuffer太长,它将不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    相关资源
    最近更新 更多