您所在的位置:小祥子 » 编程 » ASP » 正文

ASP保存远程图片至本地方法以及示例代码

时间:2015-01-23 编辑:佚名 来源:互联网

为大家分享一个将远程图片保存到本地服务器的方法代码,新建一个ASP文件,将以下代码复制到文件中,然后访问这个文件就可以了。效果是输入远程图片的网址,然后点击上传,就可以将远程图片上传到本地服务器。

<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=gb2312">
<title>远程图片自动按文件夹上传到服务器</title>
<body topmargin="0" bgcolor="#F9F9F9">
<%
Server.ScriptTimeOut=99999
savepath="upfiles" '图片保存路径,可以根据自己的需要,进行修改,如没有创建此文件夹,系统将自动创建
imgpath=request("imgpath")
if imgpath="" then
response.write "<form name=mofeiform method=post action=''><input type=text name=imgpath size=35> <input type=submit name=Submit001 value=上传></form>在输入框中输入远程图片地址,如果图片不存在,则自动放弃."
else
filepath02=mofeifoldfso(savepath)
savepath=savepath&"\"&year(now())&month(now())
filepath02=mofeifoldfso(savepath)
urname01=myreplace(imgpath)
end if
function myreplace(str)
newstr=str
set objregEx = new RegExp
objregEx.IgnoreCase = true
objregEx.Global = true
objregEx.Pattern = "http://(.+?)\.(jpg|gif|png|bmp)" '定义文件后缀,你可以自己增加.
set matches = objregEx.execute(str)
for each match in matches
newstr=replace(newstr,match.value,saveimg(match.value))
next
myreplace=newstr
end function
function saveimg(url)
temp=split(url,".")
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&"."&temp(ubound(temp))
'文件名重命名结束
set xmlhttp=server.createobject("Microsoft.XMLHTTP")
xmlhttp.open "get",url,false
xmlhttp.send
img=xmlhttp.ResponseBody
set xmlhttp=nothing
set objAdostream=server.createobject("ADODB.Stream")
objAdostream.Open()
objAdostream.type=1
objAdostream.Write(img)
if objAdostream.size<200 then
response.write "<font color=red>没找到内容!</font>[<a href=# onclick=history.go(-1)>返回</a>]"
response.end
end if
objAdostream.SaveToFile(server.mappath(savepath&"\"&filename))
objAdostream.SetEOS
set objAdostream=nothing
imgpath01=savepath&"\"&filename '返回图片路径
imgpath01=replace(imgpath01,"\","/")
response.write ("图片上传成功! [<a href=# onclick=history.go(-1)>继续上传</a>]")
response.write ("<img src="&imgpath01&" border=0 >") '根据你的系统需要,更改返回方式.
end function
Function mofeifoldfso(mpath)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if not fso.FolderExists(server.Mappath(mpath)) then fso.Createfolder(server.mappath(mpath))
set fso=nothing
End Function
%>
</body>
</html>
 

关键词:上传 保存 图片 远程