2012-09-01 227 views
0

我想知道是否有一种方法可以直接下载图像链接? 当我做这样的事情:直接从链接下载图片

它打开了图像中的浏览器或新选项卡。当用户点击该链接立即下载图像时,我想要。有没有办法用HTML/CSS或ASP.NET MVC 3做到这一点?

我的网页类似tumblr博客,主页上有几个图像,每个图标旁边都有“Download HQ”按钮。

回答

2

添加HTTP标头:

Content-Disposition: attachment; filename=<file name.ext> 

哪里是你希望出现在另存为对话框的文件名(如财政.xls或mortgage.pdf) - 没有<和>符号。

这里有一个在MVC框架的这个例子:

public ActionResult Download() 
{ 
    var document = ... 
    var cd = new System.Net.Mime.ContentDisposition 
    { 
     // for example foo.bak 
     FileName = document.FileName, 

     // always prompt the user for downloading, set to true if you want 
     // the browser to try to show the file inline 
     Inline = false, 
    }; 
    Response.AppendHeader("Content-Disposition", cd.ToString()); 
    return File(document.Data, document.ContentType); 
} 
+0

要我穿什么,而不是从“VAR文件= ...”的3个点? – Milanix

+0

如果您的项目中没有这样的容器类,则不需要“文档”变量。相反,您可以将其使用的地方替换为实际的数据变量。 –

2

您将需要服务器端脚本,使链接下载的,你需要将标题设置为

Content-Disposition:attachment;filename=some.jpg 

,然后读取图像的内容,并刷新到响应对象。

这里是asp.net的例子

Example

+0

好吧我从例如一个想法,TY – Milanix