Dropbox API v2 JavaScript 读取文件
Dropbox API v2 JavaScript read file
我想使用 Dropbox 的 JavaScript API (v2) 从 Dropbox 读取文本文件的内容,据我所知最接近的方法是 filesDownload()
。假设我们在根文件夹中有一个 test.txt 文件,内容为 'abc'。我的 JavaScript 代码如下所示(我使用 webpack)
var Dropbox = require('dropbox');
var dbx = new Dropbox({accessToken: '...'});
dbx.filesDownload({path: '/test.txt'})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
实际返回一个对象,内容如下
Object {
client_modified: "2017-03-06T06:34:24Z"
content_hash: "f62f4917741f7ed26e883d8193ddf477cde87b99dfbd8d5d8f67eb400087e0b6"
...
}
但返回的对象中没有文件内容(例如"abc")。相反,当我检查 chrome 浏览器控制台的网络选项卡时,我可以看到名为 "download" 的文件带有 url “https://content.dropboxapi.com/2/files/download” 其内容为 "abc".
我的问题是,我怎样才能真正得到文件的内容? (一旦我能得到内容,就很容易在网页上显示它们)
哦,我知道如何获取文件的内容了。
返回的对象实际上包含一个 fileBlob 对象
Object
client_modified: "2017-03-06T06:34:24Z"
....
fileBlob: Blob
size: 5
type: "application/octet-stream"
__proto__: Blob
...
并且您可以使用浏览器的 fileReader 来获取内容。所以完整的代码如下所示
var Dropbox = require('dropbox');
var dbx = new Dropbox({accessToken: '...'});
dbx.filesDownload({path: '/test.txt'})
.then(function (response) {
var blob = response.fileBlob;
var reader = new FileReader();
reader.addEventListener("loadend", function() {
console.log(reader.result); // will print out file content
});
reader.readAsText(blob);
})
.catch(function (error) {
...
})
我想使用 Dropbox 的 JavaScript API (v2) 从 Dropbox 读取文本文件的内容,据我所知最接近的方法是 filesDownload()
。假设我们在根文件夹中有一个 test.txt 文件,内容为 'abc'。我的 JavaScript 代码如下所示(我使用 webpack)
var Dropbox = require('dropbox');
var dbx = new Dropbox({accessToken: '...'});
dbx.filesDownload({path: '/test.txt'})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
实际返回一个对象,内容如下
Object {
client_modified: "2017-03-06T06:34:24Z"
content_hash: "f62f4917741f7ed26e883d8193ddf477cde87b99dfbd8d5d8f67eb400087e0b6"
...
}
但返回的对象中没有文件内容(例如"abc")。相反,当我检查 chrome 浏览器控制台的网络选项卡时,我可以看到名为 "download" 的文件带有 url “https://content.dropboxapi.com/2/files/download” 其内容为 "abc".
我的问题是,我怎样才能真正得到文件的内容? (一旦我能得到内容,就很容易在网页上显示它们)
哦,我知道如何获取文件的内容了。 返回的对象实际上包含一个 fileBlob 对象
Object
client_modified: "2017-03-06T06:34:24Z"
....
fileBlob: Blob
size: 5
type: "application/octet-stream"
__proto__: Blob
...
并且您可以使用浏览器的 fileReader 来获取内容。所以完整的代码如下所示
var Dropbox = require('dropbox');
var dbx = new Dropbox({accessToken: '...'});
dbx.filesDownload({path: '/test.txt'})
.then(function (response) {
var blob = response.fileBlob;
var reader = new FileReader();
reader.addEventListener("loadend", function() {
console.log(reader.result); // will print out file content
});
reader.readAsText(blob);
})
.catch(function (error) {
...
})