2017-11-20 2 views
0

Verwenden eines Speicherstreams & der richtige MIME-Typ mit Response.ContentType. Sonderzeichen werden angezeigt, anstatt zu einem Öffnen eines Word-Dokuments aufzufordern. Ich verwende:Beim Versuch, DOCX in einem Browser zu öffnen, Jibberish

  using (MemoryStream ms = new MemoryStream()) 
     { 
      doc.SaveAs(ms); 

      Response.Clear(); 
      Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", fileName)); 
      Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; 
      ms.WriteTo(Response.OutputStream); 
      Response.End(); 
     } 

Hier ist ein Beispiel für die Ausgabe ich jetzt bekommen, anstatt eine Aufforderung, ein Word-Dokument zu öffnen:

enter image description here

+0

Siehe [Was ist ein korrekter MIME-Typ für docx, pptx usw.?] (Https://stackoverflow.com/questions/4212861). DocX die Bibliothek diktiert nicht, was der richtige MIME-Typ ist. – mason

+0

Ja, ich habe die richtige in Response.ContentType – Mike

+0

Update - es funktioniert nur wie erwartet in IE, wenn ich die Emulation "Document Mode" auf 8 ändern. Irgendwelche Ideen, das macht mich verrückt! – Mike

Antwort

0

Stellt sich heraus, es ist kein MIME oder Antwort war. ContentType-Problem überhaupt. Als MVC-Anwendung versuchte ich das FileResult in einem Modal zu öffnen. Kopieren/Einfügen fehlgeschlagen, da andere Schaltflächen auf diese Weise zum Anzeigen von Inhalten verwendet wurden. Kein Word-Dokument!

Verwandte Themen