C# 点击下载ASHX图像

C# 点击下载ASHX图像,c#,asp.net,ashx,C#,Asp.net,Ashx,我正在使用ashx从数据库提供图像,是否有任何方式让用户点击一个链接,允许他们下载到计算机上的文件。(即显示保存对话框)就像下载文件一样。这可能吗?我认为,如果导航器能够打开您试图获取的文件类型,它将不经请求打开它。例如,如果文件是zip格式,导航器将无法打开它并要求您下载。我认为,如果导航器能够打开您试图获取的文件类型,它将不经请求打开它。如果文件为zip格式,导航器将无法打开它并要求您下载它。如果希望它提示保存,请确保在创建响应时添加以下行: context.Response.AppendH

我正在使用ashx从数据库提供图像,是否有任何方式让用户点击一个链接,允许他们下载到计算机上的文件。(即显示保存对话框)就像下载文件一样。这可能吗?

我认为,如果导航器能够打开您试图获取的文件类型,它将不经请求打开它。例如,如果文件是
zip
格式,导航器将无法打开它并要求您下载。

我认为,如果导航器能够打开您试图获取的文件类型,它将不经请求打开它。如果文件为
zip
格式,导航器将无法打开它并要求您下载它。

如果希望它提示保存,请确保在创建响应时添加以下行:

context.Response.AppendHeader("Content-Disposition",
    "attachment;filename=" + filename);
这将使浏览器将其视为附件,并使用“保存”对话框进行提示

编辑:根据您的评论,确保您的回复正确:

// set attachment header like above
// then you need to get your file in byte[] form
byte[] dataYouWantToServeUp = GetData();
// you can set content type as well
yourHttpContext.Response.ContentType = "image/jpg";
// serve up the response
yourHttpContext.Response.BinaryWrite(dataYouWantToServeUp);

如果希望提示保存,请确保在创建响应时添加以下行:

context.Response.AppendHeader("Content-Disposition",
    "attachment;filename=" + filename);
这将使浏览器将其视为附件,并使用“保存”对话框进行提示

编辑:根据您的评论,确保您的回复正确:

// set attachment header like above
// then you need to get your file in byte[] form
byte[] dataYouWantToServeUp = GetData();
// you can set content type as well
yourHttpContext.Response.ContentType = "image/jpg";
// serve up the response
yourHttpContext.Response.BinaryWrite(dataYouWantToServeUp);

但在谷歌搜索中我发现:关于将任何文件下载到浏览器。但在谷歌搜索中我发现:关于将任何文件下载到浏览器。如果我使用这个
Response.AppendHeader(“内容处置”,“附件;文件名=“+”evimg.ashx?id=18”)它试图下载文件evimg.ashx_id=18,该文件不包含任何内容。@atrljoe您可能没有正确返回响应。您可以发布用于生成响应的代码吗?如果我使用此
response.AppendHeader(“内容处置”、“附件;文件名=“+”evimg.ashx?id=18”)它试图下载文件evimg.ashx_id=18,该文件不包含任何内容。@atrljoe您可能没有正确返回响应。您可以发布用于生成响应的代码吗?