刷新
ASP缓存Gravatar头像的实例演示及下载
发布日期:2010-5-9 20:13:43

前几天发布的ASP嵌入Gravatar头像应用演示及下载很多人试用反馈说还可以,老七对Gravatar进阶研究了一下,然后写了这篇ASP缓存Gravatar头像的实例,有需要的朋友可以下载随便用,转载请链接本文地址,谢谢!(Gravatar是什么?

代码核心:

<!--#include file="md5.asp"-->
<%
sub SaveRemoteFile(LocalFileName,RemoteFileUrl)
dim Ads,Retrieval,GetRemoteData
Set Retrieval = Server.createobject("Micro"&"soft"&"."&"XML"&"HTTP")
With Retrieval
.Open "Get", RemoteFileUrl, False, "", ""
.Send
GetRemoteData = .ResponseBody
End With
Set Retrieval = Nothing
Set Ads = Server.CreateObject("Ado"&"db.St"&"ream")
With Ads
.Type = 1
.Open
.Write GetRemoteData
.SaveToFile LocalFileName,2
.Cancel()
.Close()
End With
Set Ads=nothing
end sub

set h = new MD5 '载入MD5实例
hash = h.hash(""&rs("email")&"") '指定在Gravatar中的email地址
url = "http://www.gravatar.com/avatar.php?gravatar_id=" & hash 'Gravatar头像地址

Set MyFileObject=Server.CreateObject("scripting.FileSystemObject")
if MyFileObject.FileExists(server.mappath("./face/" & hash & ".bmp")) then

' 检测缓存图片是否存在,分两种情况,7天内更新过和超过7天未更新
' 说明一下: 创建时间是:objFSOFile.DateCreated;修改时间是:objFSOFile.datelastmodified
' 这里因为是已经存在的文件,只是缓存未更新,所以取修改时间;

   
  Set objFSOFile = MyFileObject.GetFile(server.mappath("./face/" & hash & ".bmp"))
  if objFSOFile.datelastmodified < now() - 7 then
 
    imgurl = url  '超过七天未更新,更新缓存
    RemoteFileUrl = ""&url&".bmp" '获取远程图片
    FileExt = right(RemoteFileUrl,4) '获取远程图片的格式
    FileName = hash & FileExt
    LocalFileName = "./face" '保存本地路径
    if right(LocalFileName,1) <> "/" then LocalFileName = LocalFileName & "/"
    SaveFile = server.mappath(LocalFileName & FileName)
    SaveRemoteFile SaveFile,RemoteFileUrl '保存远程图片
  else
    imgurl = "./face/" & hash & ".bmp" '七天内更新过,直接本地调用
  end if
  set MyFileObject=nothing  
  set objFSOFile=nothing
else
imgurl = url  '不存在即远程调用
RemoteFileUrl = ""&url&".bmp" '获取远程图片
FileExt = right(RemoteFileUrl,4) '获取远程图片的格式
FileName = hash & FileExt
LocalFileName = "./face" '保存本地路径
if right(LocalFileName,1) <> "/" then LocalFileName = LocalFileName & "/"
SaveFile = server.mappath(LocalFileName & FileName)
SaveRemoteFile SaveFile,RemoteFileUrl '保存远程图片
end if
%>

<img src=<%= imgurl %> />

演示地址: http://pcook.com.cn/demo/201005/ASPGravatar2/

下载地址: http://pcook.com.cn/demo/201005/ASPGravatar2/ASPGravatar2.rar

已被收录在:Admin5下载 Chinaz下载 Cnzz下载