如何在asp.net上查看文件
本文关键字:文件 net asp | 更新日期: 2023-09-27 18:15:37
我正在尝试从asp.net中的文件夹查看文件。我已经尝试使用"响应"类及其许多功能来查看文件,但到目前为止我还没有成功。大多数情况下,使用Response类允许我下载文件,但不能在浏览器中查看它们。我在网上看到的大多数建议都是一样的,那就是使用这段代码:
string fileName = "Myfile.pdf";
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "inline; filename="+fileName);
但是,这只允许我下载文件,而不能在浏览器中查看。
有什么建议吗?
这是我的工作:
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();
下面是一些使用免费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();
}
请注意,你不能直接在浏览器中查看任何文件,但你可以链接下载操作到GridView(类似于你的代码)。这是它的工作原理