如何在asp.net上查看文件?

时间:2016-10-31 18:46:18

标签: c# asp.net file

我正在尝试从asp.net中的文件夹中查看文件。我已经尝试使用“Response”类及其许多函数来查看文件,但到目前为止我一直没有成功。大多数情况下使用Response类允许我下载文件,但不能在浏览器中查看它们。我在网上看到的大部分内容都暗示了使用这段代码的相同内容:

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

但同样,这只允许我下载文件,而不是在浏览器中查看。

关于我如何做到这一点的任何建议?

2 个答案:

答案 0 :(得分:1)

这对我有用:

        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();

答案 1 :(得分:0)

这是一个使用基于免费HTML的文件浏览器的好项目:

https://github.com/magicbruno/FileBrowser

替代方案是使用类似ASP.NET GridView的东西并处理浏览特定文件夹。这是简短的样本。

ASPX代码:

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

网页代码:

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();
}

请注意,您无法直接在浏览器中查看任何文件,但您可以将downolad操作链接到GridView(类似于您的代码)。这是它的工作原理。