2013-02-18 49 views
0

我们正在建立一个Web应用程序,在这个应用程序的服务器端创建一个文档。我们可以通过REST调用在javascript中检索此文档,然后将其上传到SkyDrive。如何通过JavaScript以编程方式将文件上传到skydrive?

当我使用Live Connect API时,我可以通过INPUT元素类型文件上传一个文件,该文件位于:http://msdn.microsoft.com/en-us/library/live/hh550848.aspx的示例之后。

该页面的javascript示例对我来说工作正常,但现在我们需要一种方法来上传我们没有通过文件选择器进行选择但以编程方式加载的文件。

我试图通过以下方式使其以编程方式工作,但为了工作,我需要一个access_token。我无法找到从WL api对象中检索它的方法。

function uploadFile() { 
     WL.login({ 
      scope: "wl.skydrive_update" 
     }).then(
      function (response) { 
       var filePicker = document.getElementById('filePicker'); 
       var file = filePicker.files[0]; 
      var path = file.name; 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        var c = e.result, 
         request = new XMLHttpRequest; 
       request.open("PUT", "https://apis.live.net/v5.0/me/skydrive/files/" + path + "?access_token=" + token, true); 
       request.onload = function (e) { 
         console.log("Ok") 
        }; 
        request.onerror = function (e) { 
         console.log("Error") 
        }; 
        request.send(c) 
       }; 
       reader.readAsArrayBuffer(file); 
      } 
     ); 
    } 

我可以使用Live Connect API以“编程方式”上传文件吗?如果不是,我如何从WL api对象中提取访问令牌?或者我应该完全使用另一种方式?

回答

相关问题