0
私はダイナミクスCRM用のJavaスクリプトWebリソースを作成しようとしています。これは、ユーザーがアップロードするファイルを選択し、それを注釈エンティティに格納することができます。私はこれを行う一般的な手順を知っているが、空のファイルをアップロードし続ける。データはベース64関数を使用してベース64に変換されません。私は、FileReader関数を使用して、ベース64にアップロードされたファイルを変換するのに苦労しています。選択したファイルをベース64に変換するのを助けることができますか?これはダイナミクス固有のものである必要はありません私はその一般的なJavaスクリプトhtmlの問題だと思います。私はファイルリーダー機能を間違って使用していると思います。ファイルを基本64bit javascriptに変換する問題
が
function uploadFile(event) {
var input = event.target;
var file = input.files[0];
//var file = document.getElementById("myFile").files[0];
var str;
var reader = new FileReader();
reader.onload = function() {
var dataURL = reader.result;
str = _arrayBufferToBase64(dataURL);
};
reader.readAsDataURL(input.files[0]);
var id = window.parent.Xrm.Page.data.entity.getId();
var nam = window.parent.Xrm.Page.data.entity.getEntityName();
var entity = {};
entity.Subject = "first new annotation3";
entity.NoteText = "way to go you just made a new annotation";
entity.DocumentBody = str;
entity.FileName = file.name;
entity.MimeType = file.type;
entity.ObjectId = {
Id: id,
LogicalName: nam
};
SDK.REST.createRecord(entity, "Annotation", SucessCallback2, errorCallback2);
}
function _arrayBufferToBase64(buffer) { // Convert Array Buffer to Base 64 string
var binary = '';
var bytes = new Uint8Array(buffer);
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return window.btoa(binary);
}
<
input type = "file"
id = "myFile"
placeholder = "Choose File"
onchange = "uploadFile(event)" >
、このjsfiddle例をチェックアウトhttp://jsfiddle.net/qL86Z/8/このstackoverflowの質問https://stackoverflow.com/questions/14967647/encode-decode- image-with-base64-breaks-image – sissonb