簡體   English   中英

使用MemoryStream在遠程位置C#上寫入.docx文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM