2

我正在尝试使用 JavaScript 在 SkyDrive 上创建一个新文件。

到目前为止,我最接近的事情是创建一个文件,但没有任何内容。

function upload() {
            WL.api({
                path: "me/skydrive/files/testfile8.txt",
                method: "PUT",
                body: "Some file content"
            }, function (response) {onError(response) });

                function onError(response) {

                $("#status").html(response.error) 
                }

        }

有谁知道如何在 SkyDrive 上创建一个新文件并将一个字符串作为文件内容传递。

我也尝试过使用 Ajax

  $.ajax({                   
                type : "PUT",
                url: "https://apis.live.net/v5.0/me/skydrive/files/HelloWorld.txt?access_token=" + ACCESS_TOKEN,
                data: "SOMEDATA",                    
                processData: false,                                        
                success: function() { alert('Success!' );},
                error: function(a,b,c) { alert('Error!' + a + b + c); }
            });      

这只是返回一个内部服务器错误,让我很无助:)

有人吗?

4

1 回答 1

0

很抱歉回复一个旧帖子。

下面的代码怎么样?

它会创建一个名为“hello.txt”的文件,其中包含字符串“Hello, world!”。在您的 SkyDrive 文件夹中。

var CLIENT_ID = '!!!!!!!!CLIENT ID!!!!!!!!';
var REDIRECT_URI = '!!!!!!!REDIRECT URI!!!!!!!';
var filename = 'hello.txt';
var content = 'Hello, world!';
var access_token = '';
WL.init({
    client_id: CLIENT_ID,
    redirect_uri: REDIRECT_URI
}).then(function (response) {
    return WL.login({scope: ['wl.signin', 'wl.skydrive', 'wl.skydrive_update']});
}).then(function (response) {
    access_token = response.session.access_token;
    return WL.api({path: 'me/skydrive'});
}).then(function (response) {
    var url = response.upload_location + filename + '?access_token=' + access_token;
    var xhr = new XMLHttpRequest();
    xhr.open('PUT', url);
    xhr.onload = function () {
        alert('success:', xhr.responseText);
    };
    xhr.onerror = function (error) {
        alert('XHR error:', xhr.responseText);
    };
    xhr.send(new Blob([content]));
}, function (error) {
    alert('error:', error);
});

顺便说一句,这个线程也可以帮助你。

于 2013-11-17T08:31:38.557 回答