我在文件类型字段上上传了一个 PDF 文件(大小 30MB)。
然后,我尝试在 Web 资源上显示来自该字段的 PDF,但它没有显示。如果我尝试从注释实体显示相同的 PDF,它显示得很好。这就是我从文件类型字段中获取数据的方式:
var startBytes = 0;
var req;
var increment = 4194304;
var clientUrl = Xrm.Utility.getGlobalContext().getClientUrl();
var url = clientUrl + "/api/data/v9.1/my_entity(" + recId + ")/my_fields?size=full";
while (startBytes <= fileSize) {
var result = await makeRequest("GET", url, startBytes, increment);
req = result.target;
if (req.status === 206) {
finalContent += JSON.parse(req.responseText).value;
startBytes += increment;
if (fileSize === 0) {
fileSize = req.getResponseHeader("x-ms-file-size");
fileName = req.getResponseHeader("x-ms-file-name");
}
}
else if (req.status === 404) {
break;
}
}
if (fileBodyAndMimeType[1] === "pdf") {
var newSrc = "data:application/pdf;base64," + finalContent;
const blob = dataURItoBlob(newSrc);
var temp_url = window.URL.createObjectURL(blob);
$("#myframe").attr("data", temp_url);
document.getElementById("myImage").style.display = "none";
}
上面的 dataURItoBlob 方法给了我以下错误:
DOMException: 无法在 'Window' 上执行 'atob': 要解码的字符串未正确编码。
如何正确显示 Web 资源上文件类型字段中的 PDF?