local.downloadAttachment = function (data) {
$.get("https://graph.microsoft.com/v1.0/me/messages/" + self.EmailID() + "/attachments/" + data.id, null, function (results) {
var bytes = new Uint8Array(results.contentBytes); // pass your byte response to this constructor
var blob = new Blob([bytes], { type: results.contentType });// change resultByte to bytes
//Alt method, also doesn't work but seems a lot closer to the right solution.
//var altBytes = $.base64.decode(results.contentBytes);
//var blob = new Blob([altBytes], { type: results.contentType });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = results.name;
link.click();
});
};
任何想法都会很棒。
谢谢@Mohit Verma,你帮我回到了正轨。但是,双重解码似乎不是确切的问题,因为下面的代码抛出了
未捕获的DomException:在“窗口”上执行“atob”失败:要解码的字符串编码不正确。
local.downloadAttachment = function (data) {
$.get("https://graph.microsoft.com/v1.0/me/messages/" + self.EmailID() + "/attachments/" + data.id, null, function (results) {
var raw = window.atob(window.atob(results.contentBytes));
var rawLength = raw.length;
var array = new Uint8Array(new ArrayBuffer(rawLength)); // pass your byte response to this constructor
for (var i = 0; i < rawLength; i++) {
array[i] = raw.charCodeAt(i);
}
var blob = new Blob([array], { type: results.contetType });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = results.name;
link.click();
});
};
但是,由于results.ContentBytes被转换为ByteArray(这是Blob构造函数所期望的),所以这段代码可以工作。
local.downloadAttachment = function (data) {
$.get("https://graph.microsoft.com/v1.0/me/messages/" + self.EmailID() + "/attachments/" + data.id, null, function (results) {
var raw = window.atob(results.contentBytes);
var rawLength = raw.length;
var array = new Uint8Array(new ArrayBuffer(rawLength)); // pass your byte response to this constructor
for (var i = 0; i < rawLength; i++) {
array[i] = raw.charCodeAt(i);
}
var blob = new Blob([array], { type: results.contetType });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = results.name;
link.click();
});
};
我正在尝试使用microsoft graph检查是否已签出一个onedrive文件。根据文件https://learn.microsoft.com/en-us/onedrive/developer/rest-api/resources/driveitem,存在DriveItem的发布属性。但默认情况下不返回此属性。但是文档没有提到如何检索此属性。
我是微软图形API的新手。我们的应用程序要求根据预期主题收集最新电子邮件,并收集电子邮件附件(CSV格式)。 当使用下面的查询时,但是使用2个GET请求时,这已经很好了: 首先是收集最新的电子邮件: https://graph.microsoft.com/v1.0/me/messages?$select=id,有附件 第二种是通过传递从第一个查询返回的id来收集附件: https://graph.
问题内容: 我正在从GWT客户端向HTTPServlet发出HTTP POST请求。该Servlet从请求内容创建PDF文件,并将其写入响应流。 响应流的标题为: 我想在用户浏览器的新窗口中打开此PDF或提示他下载它。 我应该如何处理onResponseRecieved中的响应? 问题答案: 我认为在这种情况下,您不应使用单个AJAX调用。您可以通过调用常规调用并让浏览器处理PDF响应(使用PDF
我使用的是Visual Studio 2017,我安装了leanft。运行时引擎在我打开IDE时启动。第一个问题是如何使用c#以编程方式启动运行时引擎。 下一个问题围绕着这样一种情况:在运行时,当我执行代码将插件附加到chrome浏览器时,它有时会超时执行附加。我怎样才能处理得更好。基本上,我的测试会让chromdriver启动一个浏览器,然后它会尝试将leanft插件连接到正在运行的浏览器上。如
问题内容: 背景 将XML文档写入浏览器的响应流,并使浏览器显示“另存为”对话框。 问题 请考虑以下方法: 在Firefox中,XML内容显示在浏览器窗口中。在IE 7中,不会显示XML内容-您必须查看文档源。两种情况都不是理想的结果。 该网页对该按钮使用以下代码: 生成的XML 并非以 开头,而是XML内容类似于: 更新#1 请注意以下代码行: 更新#2 使用是问题。一个正常的表现如预期。使用可
问题内容: 我试图做到这一点,这样我的站点上的mp3可以通过单击鼠标左键来下载,而不必单击鼠标右键并另存为。因此,为此,我必须设置Content- Disposition:附件。这是我的第一个网站,所以我不知道如何实际执行此操作,但是我是在html标记中执行此操作还是在托管网站上以某种方式进行设置? 这是我的标记外观的示例。 问题答案: MP3列表示例: download.php: