gpt4 book ai didi

javascript - 读取 SkyDrive 文件的内容

转载 作者:行者123 更新时间:2023-11-30 06:34:02 24 4
gpt4 key购买 nike

我有什么

我有 WEB 应用程序在必须访问 SkyDrive 文件的浏览器中运行。我使用 WL.js 提供的漂亮界面来访问当前经过身份验证的用户的文件列表:

   function openFromSkyDrive() {
WL.fileDialog({
mode: 'open',
select: 'single'
}).then(
function (response) {

var files = response.data.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
log(file.name);
WL.download({ "path": file.id + "/content" }, onDownloadFileCompleted).then(
function (response) {
var r = response;
},
function (responseFailed) {
log("Error downloading file: " + responseFailed.error.message);
});


//TRIED TO USE SIMPLE GET CALL TOO, DIDN'T WORKED AS WELL
/* var url = file.link;
WL.api({ path: url,

method: "GET"
}).then(
function (response) {
log("Downloaded : " + response.name + ", ID: " + response.id)
},
function (responseFailed) {
"Error calling API: " + responseFailed.error.message;
}
); */

}
},
.....
);
}

一切都很好,很干净。

问题

当我使用 WL.download 时,文件的下载开始于浏览器中,因此 browser 加载文件,但我需要的是将文件内容加载到我的 javascript,所以我可以直接从我的应用程序处理内容。

请注意,我已经尝试将 WL.api 方法与 GET 和不同的路径一起使用(我尝试了文件对象中的所有可用路径)并且它失败:或者它返回一个错误,或者什么也没有。

WinJS 似乎提供了 XHR 调用方法,但我不能使用它,因为我正在编写 web 应用程序,而 WinJS 是用于桌面的仅。

问题

如何处理从 skydrive 下载/下载文件的内容?是否有可能不遇到手动框架创建和 XHR 调用定义?

最佳答案

您可以像这样使用 WL.api 方法来创建允许您访问该文件的链接:

WL.api({
path: file.id + "/content",
method: "GET"
}).then(
function(response) {
//URL will be in response.location, so load file content using jQuery or similar
$.get(response.location, /* etc */);
},
function(err) {
alert(err);
}
);

奇怪的是,response.location 返回的 URL 不需要任何身份验证 - 因此您可以通过电子邮件发送给其他人,他们将有权访问该文件。这与文件是否在 OneDrive 中设置为共享无关。从安全的 Angular 来看,这对我来说似乎很奇怪,但我可能会遗漏一些东西。

关于javascript - 读取 SkyDrive 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15761480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com