我创建了一个项目符号列表
<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字段包含图像文件的链接。单击时,图像将显示在浏览器中。我想要显示一个下载框。
答案 0 :(得分:1)
图像在浏览器中打开,因为您的代码(我认为)只生成一个超链接,浏览器识别MIME类型并绘制它(而不是打开下载提示)。您需要设置响应标头以告知浏览器的行为方式不同。
具体来说,您要设置content-disposition
。
请参阅:Uses of content-disposition in an HTTP response header
最简单的方法是创建一个简单的HTTP处理程序,使用Response.BinaryWrite()
编写图像和标题。空ASPX页面可以是处理程序,也可以使用通用处理程序(ASHX文件)。
This tutorial似乎大致涵盖了您正在做/需要做的事情。确保content-disposition
值/语法完全正确(浏览器可以使用格式错误的标题做奇怪的事情)。