Hi All,
Recently, I came across a requirement where I wanted user to change entity image from html file up-loader.
Below is the piece of code used to update entity image.
Recently, I came across a requirement where I wanted user to change entity image from html file up-loader.
Below is the piece of code used to update entity image.
Uploader.prototype.PostRequest = function (content) { var configurationId = parent.Xrm.Page.data.entity.getId(); var tabConfiguration = { EntityImage: '' }; tabConfiguration.EntityImage = content; //byte[] content of the web resource var jsonContact = JSON.stringify(tabConfiguration); //OData URI var oDataURI = parent.Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc/" + "hsl_tabconfigurationSet(guid'" + configurationId + "')"; var req = new XMLHttpRequest(); req.open("POST", encodeURI(oDataURI), false); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("X-HTTP-Method", "MERGE"); req.send(jsonContact); //req.onreadystatechange = function () { //debugger; if (req.readyState == 4 /* complete */) { req.onreadystatechange = null; if (req.status == 204 || req.status == 1223) { return "SUCCESS"; } else { return "FAILURE: UpdateRecord Error: Cannot update tab configuration with configuration id = " + configurationId + "."; } } //}; };
Uploader.prototype.UploadImage = function (control) {
if (control[0].files.length == 0) {
alert('Please select file to upload');
}
else {
var reader = new FileReader();
var file = control[0].files[0];
reader.readAsDataURL(file);
if (reader.result) {
var fileContent = reader.result.split(',')[1];
var returnMessage = this.PostRequest(fileContent);
alert(returnMessage);
}
}
};
In Above code, function UploadImage is being called on button click event where file upload (html type file) control has been passed.
Content parameter which is being passed to PostRequest function is nothing but bytes of the image.
thanks,
p.
Comments
Post a Comment