我從Notes選項卡獲得了一定的結果。如何使用JavaScript將base64文件保存到客戶端?
您在iframe中看到的鏈接是文件的名稱。
我有一些看起來像base64的格式的註解中的DocumentBody。
如何下載?
感謝, 法比奧
我從Notes選項卡獲得了一定的結果。如何使用JavaScript將base64文件保存到客戶端?
您在iframe中看到的鏈接是文件的名稱。
我有一些看起來像base64的格式的註解中的DocumentBody。
如何下載?
感謝, 法比奧
我已經提取了base64文檔體字符串,如下所示:
function getSla() {
// Define SOAP message
var objectId;
if (typeof crmForm === "undefined") {
objectId = parent.crmForm.ObjectId;
}
else {
objectId = crmForm.ObjectId;
}
var xml =
[
"<?xml version='1.0' encoding='utf-8'?>",
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" ",
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ",
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">",
GenerateAuthenticationHeader(),
"<soap:Body>",
"<RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>",
"<query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' ",
"xsi:type='q1:QueryExpression'>",
"<q1:EntityName>annotation</q1:EntityName>",
"<q1:ColumnSet xsi:type='q1:AllColumns' />",
"<q1:Distinct>false</q1:Distinct><q1:Criteria><q1:FilterOperator>And</q1:FilterOperator>",
"<q1:Conditions><q1:Condition><q1:AttributeName>objectid</q1:AttributeName><q1:Operator>Equal</q1:Operator>",
"<q1:Values><q1:Value xsi:type=\"xsd:string\">",
objectId,
"</q1:Value></q1:Values></q1:Condition></q1:Conditions></q1:Criteria>",
"</query>",
"</RetrieveMultiple>",
"</soap:Body>",
"</soap:Envelope>"
].join("");
var resultXml = executeSoapRequest("RetrieveMultiple", xml);
var result = filter(resultXml.getElementsByTagName("q1:filename"), function (element) {
return /master.*sla/i.test(element.text);
});
if (result.length == 0) {
return null;
}
else {
return result[0].parentNode;
}
}
function getSlaDocumentBody(sla) {
return sla.getElementsByTagName("q1:documentbody")[0].text;
}
window.open("data:application/pdf;base64," + getSlaDocumentBody(sla));
它在地址欄中用字符串data:application/pdf ..........打開了一個新窗口,但什麼也沒做。我更喜歡這個解決方案。
結束在這裏使用srasmussen解決方案:http://social.microsoft.com/Forums/en/crm/thread/05134277-dd76-4fbb-8f6e-89b1a2a45af1。
var URL = serverUrl + "/userdefined/edit.aspx?etc=5&id=" + slaId;
$.get(URL, function (data) {
var WRPCTokenElement = $(data).find("[WRPCTokenUrl]");
if (WRPCTokenElement) {
var WRPCTokenUrl = WRPCTokenElement.attr("WRPCTokenUrl");
if (WRPCTokenUrl) {
URL = "/Activities/Attachment/download.aspx?AttachmentType=5&AttachmentId=" + slaId + "&IsNotesTabAttachment=undefined" + WRPCTokenUrl;
window.open(URL);
}
}
return false;
});
我正在忙於處理類似的問題,以保留電子郵件活動響應中的內嵌圖像。我會在正確解決問題時發佈。我有Base64 PNG,可以顯示它。你在變量中是否有Base64 pdf文本? – Bvrce
是@Bvrce,我擁有它。我從q1:documentbody中得到它,就像你在我的答案中看到的那樣。謝謝!期待您的洞察力。 –
執行一個jQuery請求一個URL這樣
Xrm.Page.context.getServerUrl() + "XRMServices/2011/OrganizationData.svc/ActivityMimeAttachmentSet(guid'abc...')?$select=Body"
通過指定選擇你只會你想要的要求。
結果分配給一個變量,在前面加上
data:application/pdf;base64,
從那裏,你可以內嵌顯示爲一個HTML對象或嘗試打開它作爲一個新的窗口
window.location or window.open or document.location.href
是否在ActivityMimeAttachmentSet pdf位於何處?你有PDF的GUID嗎?您可以使用Document.body.all.tags('a')並檢查href屬性以查找鏈接指向的位置。 – Bvrce
我相當肯定他的意思是**預先**'data:application/pdf; base64,'看到尾隨的逗號? – DigitalDesignDj
@DigitalDesignDj是對的。我已編輯附加前置。 – Bvrce
如果您發佈了一些HTML,我們可以更好地理解 – freedev
可能的重複? http://stackoverflow.com/questions/4274456/how-to-create-a-text-file-on-a-client-machine-using-javascript-or-jquery –
@GregOwens,你的問題的答案是否定的,這不是一個騙局。即使解決方案是相同的。使用的關鍵字不一樣。因此,尋找這些關鍵字的人永遠不會找到其他問題。此外,問題不一樣(即使答案會)。嘗試做出貢獻,而不是試圖通過尋找其他類似問題來尋找智能。杜佩綜合徵是這個網站唯一的問題。 –