2012-07-08 2 views
1

OpenXML 문서를 (템플릿으로) 조작하는 것으로 서버 응용 프로그램은 새 내용을 임시 파일로 저장 한 다음 사용자에게 다운로드하여 다운로드합니다.스트리밍 OpenXML 결과

질문은 서버에 임시 파일로 저장하지 않고 다운로드 할 준비가되어있는 방법입니까? OpenXML 결과를 파일로 저장하는 대신 byte[] 또는 Stream으로 저장할 수 있습니까?

답변

2

이 페이지를 사용하여 : OpenXML file download without temporary file

나는이 일에 내 코드를 변경 :

byte[] result = null; 
byte[] templateBytes = System.IO.File.ReadAllBytes(wordTemplate); 
using (MemoryStream templateStream = new MemoryStream()) 
{ 
    templateStream.Write(templateBytes, 0, (int)templateBytes.Length); 
    using (WordprocessingDocument doc = WordprocessingDocument.Open(templateStream, true)) 
    { 
     MainDocumentPart mainPart = doc.MainDocumentPart;   
     ...   
     mainPart.Document.Save(); 
     templateStream.Position = 0; 
     using (MemoryStream memoryStream = new MemoryStream()) 
     { 
      templateStream.CopyTo(memoryStream); 
      result = memoryStream.ToArray(); 
     } 
    } 
} 
+0

를가 [] 바이트로 변환 할 필요가 다운로드 만 없다면. 스트림 위치를 0으로 설정하면됩니다. – user3285954