2016-10-21 4 views
0

Ich habe diesen Code:anzeigen Datei in Browser C#

public void OpenFile(string fileName) 
     { 
      var url = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
      using (var fileStream = new FileStream(url, FileMode.Open)) 
      { 
       byte[] bytes = new byte[fileStream.Length]; 
       int numBytesToRead = (int)fileStream.Length; 
       int numBytesRead = 0; 
       fileStream.Read(bytes,numBytesRead, numBytesToRead);    
      } 
     } 

Dieser Code funktioniert prima, aber ich möchte, dass die Datei im Browser zeigen, ich bin von der im Namen dieser Methode auf Klick ausführen Datei, Parameter funktionieren gut, was ist der andere Code, den ich setzen muss, um die Datei im Browser anzuzeigen? Meistens werden die Dateien .doc und .pdf sein. Wie kann ich die Dokumente im Browser anzeigen?

+0

http://stackoverflow.com/questions/3604562/download-file-of-any-type-in-asp-net-mvc-using-fileresult – Hackerman

Antwort

0

Sie können eine FileStreamResult von Ihrer Aktionsmethode zurückgeben. Ändern Sie die Methode Rückgabetyp aus void zu ActionResult

public ActionResult OpenFile(string fileName) 
{ 
    var pathToTheFile = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
    var fileStream = new FileStream(pathToTheFile, 
            FileMode.Open, 
            FileAccess.Read 
           ); 
    return new FileStreamResult(fileStream, MimeMapping.GetMimeMapping(fileName));  
}