【问题标题】:Upload file to default folder using OneDrive File Picker API使用 OneDrive 文件选择器 API 将文件上传到默认文件夹
【发布时间】:2015-05-18 09:37:39
【问题描述】:

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

即而不是使用设置路径

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

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

【问题讨论】:

    标签: javascript onedrive filepicker


    【解决方案1】:

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

    【讨论】:

    • 我正在使用一个驱动器的javascript api上传文件..但我想设置一个默认文件夹,以便最终用户无法选择任何文件夹,文件将上传到一个默认文件夹.您能进一步指导我吗?
    • 很抱歉。在这种情况下,您将希望您的应用程序直接调用 WL.upload 函数并调出您希望默认文件夹所在的路径。在msdn.microsoft.com/en-us/library/hh550848.aspx 的示例中,您可以将路径更改为“me/skydrive/my_documents”或任何友好的文件夹名称。您必须为文件信息创建一个 标记和一个调用该函数的按钮。
    • 我将路径更改为“me/skydrive/my_documents”...但它仍然显示用户的一个驱动器文件夹结构,显示默认文件夹,如文档、图片、公共,以及保存、取消和新文件夹选项.不能直接将文件上传到 Documents 文件夹而不提供选择任何其他文件夹的选项吗?
    • 选择器将始终为用户显示文件夹选项。因此,如果您希望在不给用户选项的情况下将文件上传到特定文件夹,则需要直接调用 WL.upload 函数。
    • 你能举例说明如何直接调用 WL.upload 函数而不给用户任何选择文件夹的选项吗?
    【解决方案2】:

    按照https://msdn.microsoft.com/en-us/library/hh550848.aspx 上的步骤,您可以完成这项任务。

    在代码的 HTML 部分,添加 and 以调用 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> 

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      相关资源
      最近更新 更多