[英]Using MemoryStream to write .docx file on remote location c#
我正在從字符串生成MemoryStream並將其傳遞給另一個方法,該方法將以.docx
文件的形式將該Stream保存在遠程位置。
public static MemoryStream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
上面的代碼用於將字符串轉換為MemoryStream。 我傳遞給上述方法的字符串是XML,它是通過Globals.ThisAddIn.Application.ActiveDocument.WordOpenXML
行獲得的。
文件已成功上傳到遠程位置,但是當我下載該文件時,MS Word拋出一個錯誤,指出File is corrupted. Either part of file is missing or invalid
File is corrupted. Either part of file is missing or invalid
(如下圖所示)
我無法得知我正在生成的流是錯誤的/損壞了,還是需要執行更多操作才能使此.docx
文件有效?
對不起,這個問題有很多這樣的問題,但是沒有一個會更有用。
通過這種方式傳遞的XML無效的DOCX文件。 實際的DOCX格式使用帶有文件夾的壓縮內容。 您需要將文檔從添加項保存到一個臨時位置(最好使用GetTempPath ,然后將文件從磁盤讀取到內存流中,然后將其上傳到任何需要的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.