2016-04-14 7 views
0

私のサイトにはフォームがあります。フォームを使用すると、ローカルマシンからファイルを選択するか、ドロップボックスからファイルを選択することができます。私は、ローカルマシンからファイルを取得し、それをサーバーに保存する方法を知っています。DropboxからDropboxからファイルを選んだ後、サーバにファイルを保存するにはどうすればいいですか?

私はドロップボックスに関する研究を行い、「セレクタ - ドロップボックス」と呼ばれるものを作ったことを知りました。 (基本的に、私たちのWebアプリケーションがDropboxからファイルを取得できるようにする小さなJavaScriptコンポーネント)と、私たちのWebに 'Chooser'を統合することができることは非常に驚くべきものです。

しかし私の問題は、セレクタを使ってdropboxからファイルを選んだ後、私のサーバにファイルを保存する方法がわかりません(私は基本的にそのファイルをダウンロードし、セレクタ)。ここで

は、Dropboxのは、私たちがセレクタ

、JavaScriptからセレクタをトリガ
<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="YOUR_APP_KEY"></script> 

の作業については、弊社のWebに入れたいというのjavaスクリプトである:ここで

var button = Dropbox.createChooseButton(options); 
document.getElementById("container").appendChild(button); 

はオプションです:

options = { 

    // Required. Called when a user selects an item in the Chooser. 
    success: function(files) { 
     alert("Here's the file link: " + files[0].link) 
    }, 

    cancel: function() { 

    }, 

    linkType: "direct", // or "direct" 

    multiselect: false, // or true 

    extensions: ['.pdf', '.doc', '.docx'], 
}; 

成功したコールバックには私たちがdropboから選んだファイルのダウンロードリンクがありますバツ。

私はバックエンドとしてフロントエンドとスプリングでjqueryを使用しています。

ダウンロードリンクをJava側に渡すと、Dropboxファイルをローカルマシンにダウンロードして、アプリケーションサーバーにアップロードすることができます。

しかし、ローカルマシンにファイルをダウンロードせずにアプリケーションサーバーにアップロードする方法があります。

私を助けてください。

答えて

0

私はファイルのダウンロードリンクを取得しています。

success: function(files) { 
     alert("Here's the file link: " + files[0].link) 
    } 

もう一度ajaxを使用して、このダウンロードリンクをコントローラからサービスクラスへのスプリングコントローラに渡します。

以下のコードを使用するサービスクラスでは、ファイルをサーバーパスに保存できます。

 File newFile = new File("here write server path"); 

     if(!newFile.exists()){ 
      URL url = new URL(downloadLink); 
      ReadableByteChannel rbc = Channels.newChannel(url.openStream()); 
      FileOutputStream fos = new FileOutputStream(newFile); 
      fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 
      fos.close(); 
      rbc.close(); 
     } 
関連する問題