【发布时间】: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