javascript - dropbox-js readFile 只能获取类型为 "text/plain"的文件的内容吗?

标签 javascript dropbox-api

我使用 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): enter image description here

这是它的解码方式(Contents表明它确实是一个arrayBuffer,而Decoded是解码后返回的实际字符串: enter image description here

最佳答案

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

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

关于javascript - dropbox-js readFile 只能获取类型为 "text/plain"的文件的内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296400/

相关文章:

javascript - 居中的 div 锁定到位,不能上下移动

android - 使用 Android DropBox API 加密 DropBox 文件

ios - iOS 上的 Dropbox API 无法链接

ios - NSInputStream 与 url 在 iOS 中出现 nil

ios - 有没有办法判断 Dropbox block 上传提交是否成功?

javascript - 卡片布局面板未在 Sencha Touch 2.2 中呈现

javascript - 如何摆脱D3JS中嵌套的selectAll?

javascript - 居中背景图片并在上方添加背景色

javascript - 直接从 AJAX 调用代码隐藏函数,无需页面加载

ios - Dropbox iOS SDK 应用内插件?