2016-11-07 84 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」卻起作用。 –