2011-03-21 128 views
1

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

回答

6

如果你想让它提示保存确保您创建响应时,添加以下行:

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); 
+0

如果我使用'Response.AppendHeader(“Content-Disposition”,“attachment; filename =”+“evimg.ashx?id = 18”);'它尝试下载文件evimg.ashx_id = 18,其中不包含任何内容。 – atrljoe 2011-03-22 13:03:11

+0

@atrljoe你可能没有正确地发送回应。你能发布你正在使用的代码来建立你的回应吗? – Kelsey 2011-03-22 15:14:22

+0

得到它的工作,谢谢。 – atrljoe 2011-03-22 15:31:00

0

我认为,如果导航器能够打开你想要获得的文件的类型,它会打开它,而不会问。如果对于瞬间,文件格式为zip,则导航器无法打开它,并会要求您下载它。

+0

但做一个谷歌搜索,我发现这一点:HTTP://www.xefteri.com/articles/ show.cfm?id = 8关于将任何文件下载到浏览器。 – 2011-03-21 20:12:35