使用 OneDrive 文件选取器将文件上传到默认文件夹 API

Upload file to default folder using OneDrive File Picker API

我们可以使用 OneDrive 的 JavaScript 文件选取器 API 将文件上传到 OneDrive 中的任何默认文件夹,例如文档或 Public 文件夹吗?

即而不是使用

设置路径
WL.upload({                           
    path: response.data.folders[0].id,                          
    element: "file",
    overwrite: "rename"
});

我们可以像 Documents/Public 一样为默认文件夹设置路径值吗?

路径 "response.data.folders[0].id" 用于 select 调用 WL.fileDialog 时用户从 OneDrive 文件选择器 select 编辑的文件夹。如果您要上传到默认文件夹,您可能希望省略文件选择器并使用 JavaScript API.

按照 https://msdn.microsoft.com/en-us/library/hh550848.aspx 中的步骤完成此任务。

在代码的 HTML 部分,添加 和 以调用 wl.upload 函数。下面是我的代码,它将允许使用 select 文件并将其上传到 OneDrive 上的默认文件夹。在这种情况下,我使用了 "me/skydrive/my_documents"

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript Code Sample</title>
        <script type="text/javascript" src="//js.live.net/v5.0/wl.js"></script>
    </head>
    <body>
<div style="padding: 1em">


        <div id="signin"></div>
        <label id="info"></label>
    <form>
    <input id="file" name="file" type="file" />
</form>
    <button onclick="uploadFile()">Save file directly (calling WL.upload)</button>
        <script>
            WL.init({
                client_id: 'Your_Client_ID',
                redirect_uri: 'Your_Redirect_URL',
                scope: "wl.signin",
                response_type: "token"
            });
            WL.ui({
                name: "signin",
                element: "signin"
            });
            function uploadFile() {
                WL.login({
                    scope: "wl.skydrive_update"
                }).then(
                    function (response) {
                        WL.upload({
                            path: "me/skydrive/my_documents",
                            element: "file",
                            overwrite: "rename"
                        }).then(
                            function (response) {
                                document.getElementById("info").innerText =
                                    "File uploaded.";
                            },
                            function (responseFailed) {
                                document.getElementById("info").innerText =
                                    "Error uploading file: " + responseFailed.error.message;
                            }
                        );
                    },
                    function (responseFailed) {
                        document.getElementById("info").innerText =
                            "Error signing in: " + responseFailed.error.message;
                    }
                );
            }

        </script> 
    </div>
    </body>
</html>