我正在使用xdocreport生成WORD文件的報告。使用轉換標誌插入操作TRUE失敗
從所生成的報告中,我創建InputStreamContent
與MIME-TYPE "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
(MS WORD - DOCX)寫入到谷歌驅動器:
// create Word file stream using xdocreport
OutputStream2InputStream outputStream = new OutputStream2InputStream(); // buffer
report.process(context, outputStream);
// create inputstream for Google Drive
InputStreamContent inputStream = new InputStreamContent("application/vnd.openxmlformats-officedocument.wordprocessingml.document",
outputStream.getInputStream());
inputStream.setLength(outputStream.size());
寫入數據MSWORD DOCUMENT工作正常(CONVERT = FALSE):
File file = new File();
Insert insertOperation = service.files().insert(file, inputStream).setConvert(false);
file.setTitle("test.docx");
file.setMimeType(inputstream.getType());
File result = insertOperation.execute();
產生在我的Google雲端硬盤上創建的WORD DOCX文件。
寫入數據SAME的InputStream WITH CONVERT = TRUE失敗
File file = new File();
Insert insertOperation = service.files().insert(file, inputStream).setConvert(true);
file.setTitle("test");
//file.setMimeType(inputstream.getType()); // what here ?
File result = insertOperation.execute();
RESULT
1.當沒有設置mime類型:新創建的文件具有result
0字節和MIME類型:application/vnd.google-apps.kix
2.將mime類型設置爲 MIME-TYPE設置爲「application/vnd.google-apps.document」並且convert = true時,結果爲400:BAD REQUEST。
我在做什麼錯?
當我不在Insert實例上設置MIME類型時,生成的文件有0個字節,MIME類型爲application/vnd.google-apps.kix。或者我必須在InputStreamContent上放棄它? – koma
在InputStreamContent上,您應該使用文件的實際MIME類型。你不應該傳遞「kix」MIME類型。 –
AFAICS,我會盡你所能解釋...但結果在0字節文件 - 相同的InputStreamContent工作正常,沒有轉換。我害怕,我需要深入一點。 – koma