我的机器上存储了一些文件。当用户想要生成链接时,页面应该生成超链接。任何其他用户都可以使用此超链接下载文件
问问题
16544 次
2 回答
0
有一个 LinkButton 并为 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 回答