2016-10-31 7 views
0

Ich versuche, Dateien aus einem Ordner in asp.net anzuzeigen. Ich habe versucht, die "Antwort" -Klasse und ihre vielen Funktionen zu verwenden, um Dateien anzuzeigen, aber bis jetzt war ich nicht erfolgreich. Meistens benutze ich die Response-Klasse, um die Dateien herunterzuladen, aber nicht im Browser anzuzeigen. Das meiste, was ich online gesehen schlägt die gleiche Sache, die dieses Stück Code zu verwenden ist:Wie Dateien auf asp.net ANZEIGEN?

string fileName = "Myfile.pdf"; 
Response.ContentType = "application/pdf"; 
Response.AddHeader("Content-Disposition", "inline; filename="+fileName); 

Aber noch einmal, dies ermöglicht es mir nur um die Datei herunterzuladen und es nicht im Browser anzuzeigen.

Irgendwelche Vorschläge, wie ich das machen kann?

+1

Ob eine Datei die Fähigkeit, es zu betrachten, mit oder nicht, ist abhängig vom Browser angezeigt werden kann. Wenn der Browser das nicht kann und es kein relevantes Plugin/keine Erweiterung gibt, wird eine Bibliothek benötigt, um die Datei in eine Darstellung zu verwandeln, die der Browser verstehen kann (HTML/CSS/JS oder ein anderes Format, das der Browser nativ verarbeiten kann) via Plugin), oder die Datei muss auf den Computer des Benutzers heruntergeladen werden. – mason

Antwort

1

Dies ist, was für mich funktioniert:

 Response.Clear(); 
     Response.AddHeader("Content-Length", binaryFile.Length.ToString(CultureInfo.InvariantCulture)); 
     //Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", title)); // save file as attachment 
     Response.AddHeader("Content-Disposition", string.Format("inline; filename={0}", title)); // display inline in browser 
     Response.AddHeader("Content-Type", "application/pdf"); 
     Response.BinaryWrite(binaryFile); 
     Response.Flush(); 
     Response.End(); 
+0

Danke, das hat funktioniert! – nz881

0

ist hier etwas schönes Projekt freie HTML-basierte Datei-Browser:

https://github.com/magicbruno/FileBrowser

Alternative etwas wie ASP.NET zu verwenden wäre GridView und behandeln bestimmten Ordner durchsuchen. Hier ist eine kurze Probe.

ASPX Code:

<asp:GridView ID="GridView1" runat="server"></asp:GridView> 

Suchrufcode:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     DisplayDirectoryContent(Server.MapPath("~")); 
    } 
} 

void DisplayDirectoryContent(string directory) 
{ 
    System.Data.DataTable data = new System.Data.DataTable(); 
    data.Columns.Add("Name",typeof(string)); 
    data.Columns.Add("IsFolder", typeof(bool)); 
    foreach (var dir in System.IO.Directory.GetDirectories(directory)) 
    { 
     System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(directory); 
     data.Rows.Add(new object[] { di.Name, true }); 
    } 
    foreach (var file in System.IO.Directory.GetFiles(directory)) 
    { 
     System.IO.FileInfo fi = new System.IO.FileInfo(file); 
     data.Rows.Add(new object[] { fi.Name, false }); 
    } 
    GridView1.DataSource = data; 
    GridView1.DataBind(); 
} 

Beachten Sie, dass Sie direkt eine beliebige Datei in Browser anzeigen kann nicht, aber Sie können Aktion zu Gridview Link downolad (ähnlich Code) . So funktioniert es.