自己的空間想做一個相冊,找來找去用了picasa,功能很方便,唯一不足之處是獲取外鏈太麻煩,一個一個的複製粘貼太辛苦,於是用asp+javascript的方法寫了個簡單的程式來與大家分享。稍加改造就可以實現更強大的功能了。
用下面的程式碼就可以簡單的批次匯出picasa相簿的外鏈了。
複製代碼代碼如下:
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<%
dim xmlget,xmlhttp,email,paswd
email=youremail '輸入picasa的帳戶email
paswd=yourpassword '輸入picasa的密碼
Set xmlhttp = CreateObject(Msxml2.ServerXMLHTTP)
With xmlhttp
.Open GET, https://www.google.com/accounts/ServiceLoginAuth?service=lh2&continue=http://picasaweb.google.com/lh/login?continue=http%3A%2F%
2Fpicasaweb.google.com%2Fhome<mpl=gp&h1=zh_CN&GALX=ip37cq7CgwE&Email=&email&&Passwd=&paswd, False
'.setRequestHeader CONTENT-TYPE,application/x-www-form-urlencoded
.Send
xmlget = getRedirect(bin2str(.responseBody))
.Open GET, xmlget
.Send
xmlget = bin2str(.responseBody)
if request(type)=photo then
.Open GET, request(url)
.Send
xmlget = bin2str(.responseBody)
xmlget = Replace(xmlget, pwa.setup, test2)
else
xmlget = Replace(xmlget, pwa.setup, test)
end if
End With
set xmlhttp = nothing
Function bin2str(binstr)
Const adTypeBinary = 1
Const adTypeText = 2
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject(ADODB.Stream)
With BytesStream
.Type = adTypeText
.Open
.WriteText binstr
.Position = 0
.Charset = UTF-8
.Position = 2
StringReturn = .ReadText
.Close
End With
Set BytesStream = Nothing
bin2str = StringReturn
End Function
Function getRedirect(str)
str = Mid(str, Instr(str, location.replace))
str = Mid(str, 19, Instr(str, ))-19)
str = Replace(str, /x3d, =)
getRedirect = Replace(str, /x26, &)
End Function
%>
<%
if request(type)<>photo then
%>
<script language=javascript><!--
function test()
{
if(arguments.length != 8)
return;
var html = <ul>;
var albums = arguments[3];
for (var i=0;i<albums.length;i++)
html+=<li><a href='http://<%=Request.ServerVariables(Server_Name)&Request.ServerVariables(SCRIPT_NAME)%>?type=photo&url=+escape(albums
[i].url)+'>+albums[i].title+</a></li><br/><img src=+albums[i].src+ src=+albums[i].src+/> ;
html+=</ul>;
document.body.innerHTML=html;
}
// --></script>
<%
else
%>
<script language=javascript><!--
function test2()
{
if(arguments.length != 15)
return;
var html = <ul>;
var photoes = arguments[6].feedPreload.feed.entry;
for (var i=0;i<photoes.length;i++)
html+=<li>+photoes[i][content$src]+</li>;
html+=</ul>;
document.body.innerHTML=html;
}
// --></script>
<%
end if
%>
<%=xmlget%>
將上面的程式碼裡picasa的使用者名稱密碼改好,儲存成ASP文件,放到伺服器下訪問,就可以看到效果了。