如何在JavaScript中使用Base64String值设置Dynamics CRM/365字段
我想用文档的base64字符串值设置“base64string”,然后我将稍后获取该值并将文档加载到sharepoint上(我已经有了通过控制台应用程序进行此工作的c#代码) 我下面的代码似乎不起作用,基本上从未设置值,字段base64string是一个包含100万个字符的多行如何在JavaScript中使用Base64String值设置Dynamics CRM/365字段,javascript,dynamics-crm,dynamics-365,Javascript,Dynamics Crm,Dynamics 365,我想用文档的base64字符串值设置“base64string”,然后我将稍后获取该值并将文档加载到sharepoint上(我已经有了通过控制台应用程序进行此工作的c#代码) 我下面的代码似乎不起作用,基本上从未设置值,字段base64string是一个包含100万个字符的多行 <html> <head> <meta charset="utf-8"> </head> <body> Please select a file and
<html>
<head>
<meta charset="utf-8">
</head>
<body>
Please select a file and then hit Evaluate:
<br/>
<input id="file" type="file" />
<button id="button">Upload
<script>
document.getElementById('button').addEventListener('click', function() {
var files = document.getElementById('file').files;
if (files.length > 0) {
getBase64(files[0]);
}
});
function getBase64(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
Xrm.Page.getAttribute("base64string").setValue(reader.result);
};
reader.onerror = function (error) {};
}
</script>
</body>
</html>
请选择一个文件,然后点击评估:
上传
document.getElementById('button')。addEventListener('click',function(){
var files=document.getElementById('file').files;
如果(files.length>0){
getBase64(文件[0]);
}
});
函数getBase64(文件){
var reader=new FileReader();
reader.readAsDataURL(文件);
reader.onload=函数(){
Xrm.Page.getAttribute(“base64string”).setValue(reader.result);
};
reader.onerror=函数(错误){};
}
在Xrm.Page.getAttribute(“base64string”)
中,您确定base64string
是字段名吗?如果是自定义字段,则应具有前缀,如abc\u base64string
此外,HTML web资源不能直接访问Xrm.Page
添加到表单的HTML web资源不能使用定义的全局对象
通过在表单中加载的JavaScript库。HTML web资源可以是
通过以下方式与表单中的Xrm.Page或Xrm.Utility对象交互
使用parent.Xrm.Page或parent.Xrm.Utility,但不使用全局对象
无法使用父级访问由表单脚本定义的
我相信您的代码应该更像这样:
reader.onload = function () {
parent.Xrm.Page.getAttribute("abc_base64string").setValue(reader.result);
};
您将此代码放置在何处?@JamesWood此代码作为网络资源放置在活动表单上