在c#中单击链接时强制下载

时间:2012-08-08 06:01:02

标签: asp.net sql download

  

可能重复:
  href image link download on click

我创建了一个项目符号列表

<asp:BulletedList ID="BulletedList1" runat="server" DisplayMode="HyperLink" 
            DataSourceID="SqlDataSource1" DataTextField="description" 
            DataValueField="link" onclick="BulletedList1_Click">
        </asp:BulletedList>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:chaaapaConnectionString6 %>" 
        SelectCommand="SELECT [description], [link] FROM [quiz]">
    </asp:SqlDataSource>

datavalue字段包含图像文件的链接。单击时,图像将显示在浏览器中。我想要显示一个下载框。

1 个答案:

答案 0 :(得分:1)

图像在浏览器中打开,因为您的代码(我认为)只生成一个超链接,浏览器识别MIME类型并绘制它(而不是打开下载提示)。您需要设置响应标头以告知浏览器的行为方式不同。

具体来说,您要设置content-disposition

请参阅:Uses of content-disposition in an HTTP response header

最简单的方法是创建一个简单的HTTP处理程序,使用Response.BinaryWrite()编写图像和标题。空ASPX页面可以是处理程序,也可以使用通用处理程序(ASHX文件)。

This tutorial似乎大致涵盖了您正在做/需要做的事情。确保content-disposition值/语法完全正确(浏览器可以使用格式错误的标题做奇怪的事情)。

相关问题