2016-11-07 89 views
0

我想用Node.js中的watson-developer-cloud Javascript库将一些文档转换为Watson文档转换服务的答案单元。特定的一些(一个例子是IBM的内部链接,是一个.docx文件)这个错误:如果我试图通过文档转换演示现场,将其转化从Watson的文档转换服务中获取一个奇怪的错误

Error: code:400 error: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)

,它似乎没有错误的转换。我的程序从源文件下载文件,将其写入磁盘,然后通过上述库将其上传到文档转换服务。

有没有办法解决这个错误?考虑到这种转换是成千上万文件的大规模自动转换的一部分,因此对这些异常值进行手动处理是不可能的。

+0

这是来自Microsoft Excel中的相同错误消息的人的帖子。 http://stackoverflow.com/questions/12593752/why-do-i-failed-to-read-excel-2007-using-poi。我不确定这有多大帮助,但它可能会指示您朝着正确的方向发展。 请删除指向IBM内部文档的链接,因为您的问题实际上是关于文档格式而不是doc内容。如果您需要共享有关IBM内部文档的详细信息,则需要IBM的内部论坛。 – ralphearle

回答

1

服务尝试使用文件的前几个字节和文件名自动检测上载文件的媒体类型。

如果文件名是不可用的(即不是由用户提供的),你可以为你提供的转换调用的文件部分上载的文件的媒体类型:

file: { 
    value: fs.createReadStream('filename'), 
    options: { 
     contentType: 'application/vnd.openxmlformats officedocument.wordprocessingml.document' 
    } 
} 
+0

“contentType”似乎不起作用,但“content_type”却起作用。 –