通过程序使得图片可以直接下载

[ At 12/21/2008 By wukong   0 comments ]

对于图片站,一般都是用户找到目标图片页面后,在图片上点击右键-图片另存为,进行图片的下载,用户体验不是特别好,一些不熟悉计算机的用户很难进行图片下载。如何才能让一个链接到图片的地址,直接点击就可以象下载rar、exe这些文件一样直接弹出下载对话框进行下载而不是打开图片浏览呢?当然,通过修改服务器iis设置可以实现,但大多数情况下,修改服务器设置是不方便的,并且也可能造成其他问题出现。那么,通过程序进行处理这个问题就方便多了。

如果让程序处理图片下载,当然不能让链接直接链接到图片文件,需要将用户的操作引导到程序处理,那么首先要将链接地址改为一个程序,例如一个asp程序文件。比如我们现在要下载的是abc.jpg文件,那么我们可以做个asp,链接地址修改为 href="getimage.asp?src=abc.jpg"这样的格式,这样用户点击链接后getimg.asp就会处理用户的请求了,asp代码中可以修改用户的请求回应信息,也就是response对象的一些属性,使得本来是打开图片或者页面的请求回应,变成下载文件的回应。如下代码可以修改response对象的回应类型

Response.ContentType = "application/ms-download"

那么getimage.asp里具体怎么返回图片数据呢?这里仅给出实现代码示例,具体代码根据需要可以自行编写:

Response.Buffer = True 
Response.Clear  
--这里进行读取实际的图片文件,以二进制读取--
Response.AddHeader "Content-Disposition","attachment; filename=" & 文件名 
Response.AddHeader "Content-Length",文件长度
Response.ContentType = "application/ms-download" 
response.binarywrite 读取的图片二进制数据
response.flush
response.end

根据如上代码就可以实现图片文件直接下载了,当然,经过改进可以实现的更完美一些。比如,链接现在是一个asp地址,看上去不是直观的图片地址,虽然也可以实现,那么如果改成伪静态的会更好看,可以把asp地址伪装成一个图片实际地址。

根据修改,也可以扩展出更多功能,比如图片防盗链等等功能。

« kingcms修改-articlelist标签支持listtitle栏目标题调用友情链接时需注意“nofollow” »
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By 空空如也 

Copyright 167-2009 www.7es.cn . Some Rights Reserved. Email:iamwgh@msn.com QQ:49556
Friends site:Null