使用JavaScript从Dropbox下载文件

前端之家收集整理的这篇文章主要介绍了使用JavaScript从Dropbox下载文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有

我有一个网站试图向客户提供服务,以便从DropBox下载文件.为了简化开发,我使用Dropbox chooser.
为此,我启用了我希望下载的域名并包含< script> DropBox本身(带有相应的data-app-key)建议的标签进入我的HTML页面.
一切都很美好.

问题

现在我需要下载用户选择的文件. Dropbox chooser似乎没有为此提供任何功能,它只是检索有关文件的信息.在我的情况下,这是一个直接链接,下载文件.

要下载该文件,在我看来,我需要使用DropBox.Client,它是在//cdnjs.cloudflare.com/ajax/libs/dropbox.js/0.9.1/dropbox.min.js在另一个DropBox javascript库中定义的

所以使用该libarry我运行这样的代码

//OPTIONS FOR DROPBox CHOOSER
var options = {
        linkType: "direct",// THIS FUNCITON RUNS WHEN USER SELECTS SOMETHING
        // FROM DOPBox_CHOOSER
        success: function (files) {

            // DEFINE APP KET FOR DROPBox_CLIENT (KEY,SECRET...),WHICH I GET
            // BY CREATING NEW "CORE API" TYPE:Full DropBox APPLICATION ON 
            // DROPBox APP CONSOLE 
            var appKey = { key: 'APP KEY',secret: 'CLIENT SECRET',sandBox: true };

            //INIT CLIENT
            var client = new DropBox.Client(appKey);

            //TRY TO AUTHENTICATE IT
            client.authenticate(function (error,client) {
                if (error) {
                    console.log(error);
                }
                if (client.isAuthenticated()) {

                    //READ FILES 
                    for (var i = 0; i < files.length; i++) {
                        var file = files[i];
                        client.readFile(file.link,function (error,data) {
                            if (error) {
                                return console.log(error);  // Something went wrong.
                            }

                            alert(data);  // data has the file's contents
                        });
                    }
                } else {
                    console.log("Error on authentication");
                }
            });


        },cancel: function () {

        }
    };

    //OPEN DROPBox_CHOOSER
    DropBox.choose(options);

但所有这些都没有报告我:

如果我不调用client.authenticate我无法下载文件获取“未授权错误通知.

我该如何解决这个问题. ?

解决方法

一个简单直接的解决方案是使用XMLHTTP,如下所示
function readDropBox(sURL) 
{
    var oRequest = new XMLHttpRequest();
    oRequest.open("GET",sURL,false);
    oRequest.onreadystatechange = function(oEvent) 
    {  
        if (oRequest.readyState === 4) 
        {  
            if (oRequest.status === 200) 
            {  
                console.log(oRequest.responseText)  
            } 
            else  
            {  
                console.log("Error",oRequest.statusText);  
            }  
        } 
    } 
    oRequest.setRequestHeader("User-Agent",navigator.userAgent); 
    try 
    {
        oRequest.send(null)
    } 
    catch (err) 
    {
        alert(err);
    }
    if (oRequest.status == 200) 
    {
        return oRequest.responseText;
    }
    else 
    {
        alert("Error - File not found in DropBox public folder");
        return null;
    }
}

猜你在找的JavaScript相关文章