在新选项卡中打开文本文件

时间:2016-06-23 11:05:23

标签: javascript c# asp.net file webforms

我的本​​地驱动器中有一个text文件。我想在新标签中显示它的内容。

我试过以下

第一次尝试

   string fileName = @"C:\MyFile.log";
   Page.ClientScript.RegisterStartupScript(GetType(), "windowKey", "window.open('" + fileName + "');", true);

第二次尝试

    Response.Write("<script>");
    Response.Write("window.open('C:\\MyFile.log', '_newtab');");
    Response.Write("</script>");

这两个都在新标签页中打开,但文件中的数据未显示

经过一番搜索,我发现了这个

    FileStream MyFileStream = new FileStream(@"C:\MyFile.log", FileMode.Open);
    long FileSize;
    FileSize = MyFileStream.Length;
    byte[] Buffer = new byte[(int)FileSize];
    MyFileStream.Read(Buffer, 0, (int)MyFileStream.Length);
    MyFileStream.Close();
    Response.ContentType = "text/plain";
    Response.AddHeader("content-disposition", "inline; filename=sample.txt");
    Response.BinaryWrite(Buffer);

这是在我的文件中显示内容,但同时显示我的aspx页面

所以我的问题是如何在新标签页中显示文字文件

2 个答案:

答案 0 :(得分:0)

尝试这些步骤

  • 创建一个log.aspx并将第三个代码段中的代码放入其中。
  • 使用第一个或第二个代码段在新窗口(选项卡)中打开log.aspx

它应该有效。

答案 1 :(得分:0)

我试过这样的话:

<强> Default.aspx的

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Test.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager runat="server"></asp:ScriptManager>
        <asp:Button id="btnShowContent" Text="Show me the text" runat="server" OnClick="btnShowContent_Click" />
    </div>
    </form>
</body>
</html>

<强> Default.aspx.cs

protected void btnShowContent_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, typeof(string), "OpenTextFile", "Javascript:window.open('Resources/test.txt');", true);
}

您只需更新文件路径即可。 希望这是你想要的。