我正在尝试使用Watson的文档转换服务将一些文档转换为答案单元,使用Node.js中的watson-developer-cloud Javascript库。某些(例如IBM内部链接并且是.DOCX文件)返回此错误:
错误:代码:400错误:提供的数据似乎在Office中 2007+ XML。您正在调用处理OLE2 Office的POI部分 文档。您需要调用POI的不同部分来处理它 数据(例如XSSF代替HSSF)
如果我尝试通过文档转换演示站点转换它,它似乎转换没有错误。我的程序从源下载文件,将其写入磁盘,然后通过上述库将其上传到文档转换服务。
有没有解决此错误的方法?考虑到这种转换是数千个文档的大规模自动转换的一部分,因此对这些异常值的人工处理是不可能的。
答案 0 :(得分:1)
服务尝试使用文件的前几个字节和文件名自动检测上载文件的媒体类型。
如果文件名不可用(即,您的用户未传入),您可以在转换调用的文件部分中提供要上传的文件的媒体类型:
file: {
value: fs.createReadStream('filename'),
options: {
contentType: 'application/vnd.openxmlformats officedocument.wordprocessingml.document'
}
}