Javascript 使用java从dropbox选择器从dropbox中拾取文件后,如何将文件存储在服务器中
我在我的网站上有一个表单。表单允许用户从本地计算机中选择文件或从下拉框中选择文件。我知道如何从本地机器获取一个文件,然后通过使用一点PHP工具将其存储在服务器中 我对Dropbox做了一项研究,发现他们制作了一种叫做“Chooser-Dropbox”的东西。(基本上,它是一个小的JavaScript组件,使我们的web应用程序能够从Dropbox中获取文件)并且我们能够在web中集成“Chooser”这一点非常令人惊讶 但我的问题是,我不知道如何在从dropbox及其选择器中拾取文件后将文件存储在我的服务器中(我基本上希望在从选择器中拾取文件后下载该文件并存储在我的服务器中) 下面是DropBox希望我们在web中为Chooser的工作提供的java脚本Javascript 使用java从dropbox选择器从dropbox中拾取文件后,如何将文件存储在服务器中,javascript,java,spring,dropbox,dropbox-api,Javascript,Java,Spring,Dropbox,Dropbox Api,我在我的网站上有一个表单。表单允许用户从本地计算机中选择文件或从下拉框中选择文件。我知道如何从本地机器获取一个文件,然后通过使用一点PHP工具将其存储在服务器中 我对Dropbox做了一项研究,发现他们制作了一种叫做“Chooser-Dropbox”的东西。(基本上,它是一个小的JavaScript组件,使我们的web应用程序能够从Dropbox中获取文件)并且我们能够在web中集成“Chooser”这一点非常令人惊讶 但我的问题是,我不知道如何在从dropbox及其选择器中拾取文件后将文件存储
<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="YOUR_APP_KEY"></script>
以下是选项:
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'],
};
在成功回调中,我有一个从dropbox中选择的文件下载链接
我在前端使用jquery,在后端使用spring
将下载链接传递到java端,我们可以将dropbox文件下载到本地机器,然后再次将其上传到应用服务器
但有没有一种方法可以将其上传到应用程序服务器,而无需将文件下载到本地机器上
请帮帮我 在成功块中,我获得了文件下载链接
success: function(files) {
alert("Here's the file link: " + files[0].link)
}
再次使用ajax,我将这个下载链接传递到spring控制器,从控制器传递到服务类
在服务类中,使用下面的代码,我们可以将文件保存到服务器路径
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();
}
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();
}