2016-03-21 19 views
2

Ich stehe vor einem Problem, in dem ich nicht PDF-Datei in einem Web-Browser mit MCV anzeigen kann. Ich bekomme keinen Fehler aber zeigt mir nur D * * * * * * *Kann nicht angezeigt werden PDF-Datei im Browser mit MVC

Ich benutze Bootstrap, Jquery und MVC. Bellow ist Beispielcode zum Anzeigen von PDF.

public FileResult OpenDocument(int Id) 
    { 
     byte[] data = lst.File; // retrieve byte from db. 
     string mimeType = "application/pdf"; 
     if (mimeType != null) 
     { 
      Response.ContentType = "application/pdf"; 
      Response.AddHeader("content-length", data.Length.ToString()); 
      //Response.BinaryWrite(data); 
     } 
     return File(data, mimeType); 
    } 

Bitte helfen Sie mir oder schlagen Sie mir vor. Vielen Dank im Voraus.

+2

vermuten, dass dieses aussieht: 'return File (mime, mime);' Sie verwenden 'mimeType' für beide Parameter ... sollte nicht mehr als 1 Parameter werden die Dateidaten oder Pfad? – zgood

+0

@ zgood: Bitte posten Sie das als Antwort, da es sehr viel das Problem hier ist. –

+1

Hallo @Nishant, hast du meine Lösung versucht? Dies ist, wie ich es in meiner Anwendung mache und es funktioniert definitiv. Wenn Sie dies implementieren und immer noch das gleiche Problem haben, besteht das Problem darin, wie Sie die Byte [] - Daten speichern oder abrufen. –

Antwort

0

Dies sollte es tun.

Wenn Sie die PDF-Datei im Browserfenster öffnen möchten, entfernen Sie einfach die Zeile FileDownloadName.

public ActionResult OpenDocument(int Id) 
    { 
     try 
     { 
      byte[] data = lst.File; // retrieve byte from db. 
      string mimeType = "application/pdf"; 
      FileContentResult document = new FileContentResult(data, mimeType); 
      document.FileDownloadName = "something.pdf"; 
      return document; 
     } 
     catch 
     { 
      return new EmptyResult(); 
     } 
     return new EmptyResult(); 
    } 
0

Basierend auf Ihrem Beispiel benötigen Sie data zum File Content Ergebnis zu übergeben.

public ActionResult OpenDocument(int Id) 
{ 
    //Code that uses Id to retrieve 1st variable 
    //.... 
    byte[] data = lst.File; // retrieve byte array from db. 
    if(data!=null && data.Length > 0) { 
     string mimeType = "application/pdf"; 
     Response.AppendHeader("Content-Disposition", "inline; filename=" + Id + ".pdf"); 
     return File(data, mimeType); 
    } 
    return new EmptyResult(); 
} 
+0

Die Standarddisposition ist inline. Dies hat folglich nichts mit der Frage des OP zu tun. –

+0

Ok. wird aktualisiert – Nkosi

+0

Hallo @Nkosi, Danke für Ihren Vorschlag, aber immer noch ein Problem persisit, zeigt mir D * * PV B/ S zi im Browser. Bitte vorschlagen. Vielen Dank. – Nishant

0

Dies ist ein Codierungsproblem. Versuchen Sie, diese Zeile in Ihrer Antwort hinzufügen

Response.Charset = "utf-8"; 
Verwandte Themen