弹出以在asp.net中保存图像

时间:2010-05-26 19:18:29

标签: asp.net image download popup

我正在使用asp.net 3.5和C#。

我有一个我希望用户可以下载的图像。  比如,会有一个下载按钮或链接。当用户点击此链接时,系统会弹出提示,将该图像保存到桌面。

我试过

<a href ="path" > </a>

但它正在打开其他页面中的图像,我希望系统提示用户保存或查看图像,

请帮助

提前致谢

2 个答案:

答案 0 :(得分:3)

您需要编写一个IHttpHandler来提供图像以及Content-Disposition标题。

例如:

Response.AppendHeader("Content-Disposition", "attachment; filename=\"MyImage.png\"");
Response.TransmitFile(path);

您可能会在查询字符串上传递图像名称 如果是,请确保其中不包含/\,否则攻击者将能够读取任意文件。

答案 1 :(得分:0)

你需要有另一个页面,或者更好的是,还有一个HttpHandler,它将图像路径作为查询字符串的一部分,或者作为post参数将发送响应并将Content-Disposition设置为附件。以这种方式设置内容配置将使浏览器显示文件下载对话框。一种稍微简单的方法,虽然它取决于用户做一些额外的事情,只是让链接在新页面中打开图像,让用户右键单击它并执行“另存为”。

<a href="/path/to/handler?image=name-of-image-file">Download</a>

<a href="/path/to/image" target="_blank">
    Load Image in New Window then Use Save As</a>