2016-10-10 9 views
0

Dropbox Javascript SDKを使用して、クライアントサイドのWebapp自体にファイルをダウンロードしようとしています。Dropbox JavaScript SDKを使用してファイルをダウンロードする際の問題

私は、Webアプリケーションのフォルダにファイルをダウンロードしたいだけであることを明確にしたいと思います。私は、セキュリティ上の懸念から、実際には可能でない可能性があることを理解しています。

私はで提供されるドキュメント以下午前:

http://dropbox.github.io/dropbox-sdk-js/index.html

http://dropbox.github.io/dropbox-sdk-js/Dropbox.html#filesDownload__anchor

これは私のコントローラのコードです:

$scope.testDownload = function() { 
    console.log('Testing Download'); 
    dbx.filesDownload({path: '/Collorado Springs.jpg'}) // Just a test file 
    .then(function(response) { 
     console.log(response); 
    }) 
    .catch(function(error) { 
     console.log(err); 
    }); 
}; 

私は間違いなく、ダウンロードのように行われないことがわかります次のようにChromeネットワークツールに表示されます:

(私は複数のリンクを挿入するのに十分な評判を持っていないので、これは私が生成された「リンク」の共有interpetください)

ます。https:// www.dropbox.com/s/s0gvpi4qq2nw23s/dbxFilesDownload.JPG?dl=0を

私は、ファイルのダウンロードやJavaScriptの誤用に関する知識が不足していると思います。

ご協力いただきありがとうございます。

+0

?予想されるログステートメントを取得しているようです。そのデータをユーザーに提供してマシンにダウンロードする方法を探している場合は、[こちらの例](https://github.com/dropbox/dropbox-sdk-js/blob/master/examples/)をチェックしてください。 download/index.html#L51)。 (別のAPIメソッドですが、同じように動作します) – Greg

+0

明快さの欠如に対する謝罪。ここでの全体的な目的は、ユーザードロップボックスからファイルをwebapp内の 'ダウンロード'フォルダにダウンロードすることです(これはクライアント側またはサーバー側のどちらでもかまいません)。私はユーザーがフォルダをダウンロードするわけではありません。あなたが親切に参照した方法を試してみました。それはあなたが言うことですが、残念ながら私が望むものではありません。私は 'filesDownload'メソッドを使用してダウンロードすることができますが、結果のファイルを移動する方法や、それを使用して私が望む結果を得る方法がわかりません。アイデアは、これがすべてJavaScriptの背後で起こっているということです。 – LJH

+0

私はフォローしているかどうかはわかりませんが、Dropbox APIコールが正常に動作しているように聞こえるので、これは一般的なJavaScriptデータ処理質問のように聞こえるので、もっと助けてもらえませんか? – Greg

答えて

0

ウェブアプリケーションでファイルをダウンロードして使用する場合は、バックエンドサーバーを設定し、そのコンテンツを一時的に保存してユーザーの許可を得ておく方がはるかに優れています。

、これを行うHTTPリクエストを行い、その後、次のようなコードを使用し、その後、Dropboxのサービス、サーバー側を呼び出すことで、要求を処理するためにExpressを使用するには、次の

'use strict'; 
var Dropbox = require('dropbox'); 
var fs = require('fs'); 
var path = require('path'); 

exports.downloadFile = function(token, id, eventID, fileType, callback) { 
    var dbx = new Dropbox({ accessToken: token }); // creates post-auth dbx instance 
    dbx.filesDownload({ path: id }) 
    .then(function(response) { 
     if(response.fileBinary !== undefined) { 
     var filepath = path.join(__dirname, '../../images/Events/' + eventID + '/' + fileType + '/Inactive/', response.name); 
     fs.writeFile(filepath, response.fileBinary, 'binary', function (err) { 
      if(err) { throw err; } 
      console.log("Dropbox File '" + response.name + "' saved"); 
      callback('File successfully downloaded'); 
     }); 
     } 
    }) 
    .catch(function(err) { 
     console.log(err); 
     callback('Error downloading file using the Dropbox API'); 
    }) 
} 

module.exports = exports; 
あなたは正確に立ち往生している何
関連する問題