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

Upload file to default folder using OneDrive File Picker API

本文关键字:文件 默认 文件夹 API OneDrive 选取 使用      更新时间:2023-09-26

我们是否可以使用 OneDrive 的 JavaScript File Picker API 将文件上传到 OneDrive 中的任何默认文件夹,例如文档或公共文件夹?

即不使用设置路径

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

我们可以为默认文件夹(如文档/公共)设置路径值吗?

按照 https://msdn.microsoft.com/en-us/library/hh550848.aspx 上的步骤操作将允许您完成此任务。

在代码的 HTML 部分,添加 和 以调用 wl.upload 函数。 下面是我的代码,它允许使用选择文件并将其上传到 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> 

路径"response.data.folder[0].id"用于在调用 WL.fileDialog 时选择用户从 OneDrive 文件选取器中选择的文件夹。 如果要上传到默认文件夹,则需要省略文件选取器并使用 JavaScript API。