我正在使用dropbox-js API作为我正在创建的应用程序的后端。

我需要获取文件的内容,并且我了解用于获取内容的方法“ readFile”仅真正支持文本文件。

我可以使用以下方法获取“文本/纯文本”类型的文本文件的内容,即.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是解码后返回的实际字符串:

最佳答案

readFile应该适用于任何内容类型。大概您看到的“乱码”就是您正在读取的.docx.doc文件的内容。 (如果您通过Windows上的type或Mac / Linux上的cat查看文件,将会看到相同的内容。)

因此,我认为您遇到的问题是,您想以某种方式从多种文件格式中提取文本。 Dropbox(和dropbox.js)不会帮助您解决特定问题……您将需要找到能够理解所有这些文件格式并将其转换为所需格式的软件。例如,textract是可以执行此操作的Python库。

07-24 15:06