2013-02-18 79 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對象中提取訪問令牌?或者我應該完全使用另一種方式?

回答

相關問題