Добрый день, коллеги!
Такая ситуация, есть обычная страница редактирования (PortalKnowledgeBasePage), а на ней обычная деталь (FileDetail), я хочу сделать так что бы при открытии страницы, сразу скачивался первый попавшийся файл на детали. На рендере страницы я вызываю этот метод:
renderDownloadFile: function () {
var esqKnowledgeBaseFile = Ext.create("Terrasoft.EntitySchemaQuery", {
"rootSchemaName": "KnowledgeBaseFile"
});
esqKnowledgeBaseFile.addColumn("Id");
esqKnowledgeBaseFile.addColumn("KnowledgeBase");
esqKnowledgeBaseFile.addColumn("Name");
esqKnowledgeBaseFile.addColumn("Data");
esqKnowledgeBaseFile.filters.addItem(Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL, "KnowledgeBase", this.get("PrimaryColumnValue")));
esqKnowledgeBaseFile.getEntityCollection(function(resultKnowledgeBaseFile) {
if (resultKnowledgeBaseFile.success) {
var textFileAsBlob = new Blob([resultKnowledgeBaseFile.collection.getByIndex(0).get("Data")], {type:'application/pdf'});
var fileNameToSaveAs = resultKnowledgeBaseFile.collection.getByIndex(0).get("Name");
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
if (window.webkitURL != null) {
downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
} else {
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.onclick = destroyClickedElement;
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
}
downloadLink.click();
}
}, this);
},
Запись берет правильно, в общем он все делает правильно, кроме одного, скачивается файл, с правильным названием, с правильным количеством страниц, а вот содержимого нет. Видимо я не правильно передаю бинарные данные в конструтор Blob, но я уже все варианты перепробовал, подскажите пожалуйста!
Спасибо.