我使用dropbox-js API作为我正在创建的应用程序的后端。
我需要获取文件的内容,并且我理解用于获取内容的方法“readFile”仅支持文本文件。
我可以使用以下内容获取“text / plain”类型的文本文件的内容,即.txt文件:
client.readFile(d2.path, {arrayBuffer: true}, function(error, contents){
var decoded = decodeUtf8(contents);
console.log(decoded);
});
此方法的API参考位于:http://coffeedoc.info/github/dropbox/dropbox-js/master/classes/Dropbox/Client.html#readFile-instance
解码功能在此处找到:https://gist.github.com/boushley/5471599
这似乎不适用于任何其他文档类型文件。如果我尝试读取.docx / .doc文件,结果将包含看似乱码的字符。它应该能够与其他文档类型文件一起使用吗?我怎么会以不同的方式阅读?
我真的需要它来支持超过.txt文件。
编辑:
这是我试图阅读的测试文档(.docx):
这是解码的方式(内容显示它确实是一个arrayBuffer,而Decoded是解码后返回的实际字符串:
答案 0 :(得分:0)
readFile
应适用于任何内容类型。据推测,您看到的“加扰字符”正是您正在阅读的.docx
或.doc
文件的内容。 (如果您在Windows上通过type
或在Mac / Linux上cat
查看文件,您会看到同样的事情。)
所以我认为你遇到的问题是你想以某种方式从各种文件格式中提取文本。 Dropbox(和dropbox.js)无法帮助您解决该特定问题...您需要找到能够理解所有这些文件格式的软件,并将其转换为您需要的格式。例如,textract
是一个可以执行此操作的Python库。