[英]How can I store the files in my server after picking the files from dropbox with the dropbox Chooser using java
我的網站上有一個表格。 表單允許用戶從本地計算機中選擇文件,或者從下拉框中選擇文件。 我知道如何從本地計算機上獲取文件,然后通過做一點PHP東西將其存儲在服務器中。
我對投幣箱進行了研究,發現他們做了一個叫做“選擇器-投幣箱”的東西。 (基本上,它是一個小的JavaScript組件,使我們的Web應用程序能夠從Dropbox獲取文件),而且我們可以將“ Chooser”集成到我們的網絡中,這一點非常令人驚奇。
但是我的問題是,在使用Dropbox的Chooser從Dropbox中選取文件后,我不知道如何將文件存儲在服務器中(我基本上想下載該文件並在從Chooser中選取文件后存儲在服務器中)。
這是DropBox希望我們將Java腳本放入Web中以進行Chooser的工作
<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="YOUR_APP_KEY"></script>
從JavaScript觸發選擇器:
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'],
};
在成功的回調中,我有一個下載鏈接,該鏈接是我們從保管箱中選擇的。
我在前端和春季使用jquery作為后端。
將下載鏈接傳遞到Java端,我們可以將Dropbox文件下載到本地計算機,然后再次將其上傳到應用程序服務器。
但是有一種方法可以將其上傳到應用程序服務器,而無需將文件下載到本地計算機。
請幫我。
在成功塊中,我正在獲取文件下載鏈接。
success: function(files) {
alert("Here's the file link: " + files[0].link)
}
再次使用ajax,我將此下載鏈接傳遞給spring controller,從controller到service class。
在使用以下代碼的服務類中,我們可以將文件保存到服務器路徑。
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.