0

我的机器上存储了一些文件。当用户想要生成链接时,页面应该生成超链接。任何其他用户都可以使用此超链接下载文件

4

2 回答 2

0

有一个 LinkBut​​ton 并为 click 事件执行以下操作

您的 aspx 文件将具有以下内容

   <asp:LinkButton runat="server" OnClick="btnDownload_Click" Text="Download"/>

您背后的代码将具有以下内容

 protected void btnDownload_Click(object sender, EventArgs e)
    {
        try
        {


            var fileInBytes = Encoding.UTF8.GetBytes("Your file text");
            using (var stream = new MemoryStream(fileInBytes))
            {
                long dataLengthToRead = stream.Length;
                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.BufferOutput = true;
                Response.ContentType = "text/xml"; /// if it is text or xml
                Response.AddHeader("Content-Disposition", "attachment; filename=" + "yourfilename");
                Response.AddHeader("Content-Length", dataLengthToRead.ToString());
                stream.WriteTo(Response.OutputStream);
                Response.Flush();
                Response.Close();
            }
            Response.End();
            }
        }
        catch (Exception)
        {

        }
    }
于 2013-01-03T20:27:03.503 回答
0

如果您知道地址,则可以将超链接直接链接到文件,但这受到浏览器的限制。例如。如果客户端上安装了 pdf 阅读器,则不会下载 pdf,而是会显示它。一个好的解决方案是有一个单独的页面来下载文件。只需在查询字符串中传递文件名,在页面加载事件中只需在响应流中输出文件即可。这样您就可以使用 url 说 dwnld.aspx?filename.ext

现在您可以通过上述逻辑生成 url。

于 2013-01-04T10:40:13.573 回答