objStream.Type =1'以二进制模式打开 objStream.Open objstream.write imgs'将字符串内容写入缓冲 objstream.SaveToFile server.mappath(tofile),2'-将缓冲的内容写入文件 objstream.Close()'关闭对象 set objstream=nothing end function 所以只要用一个循环来把刚才取得的地址中的图片全部保存下来,具体过程如下: arrimg=split(retstr,"||")'分割字串,取得里面地址列表 allimg="" newimg="" for i=1 to ubound(arrimg) if arrimg(i)<>"" and instr(allimg,arrimg(i))<1 then'看这个图片是否已经下载过 fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),"."))) saveimage(arrimg(i),fname)‘保存地址的函数,过程见上面 allimg=allimg&"||"&arrimg(i)'把保存下来的图片的地址串回起来,以确定要替换的地址 newimg=newimg&"||"&fname'把本地的地址串回起来 end if next 第三步就是替换原来的地址了。具体的过程就是下面了: arrnew=split(newimg,"||")'取得原来的图片地址列表 arrall=split(allimg,"||")'取得已经保存下来的图片的地址列表 for i=1 to ubound(arrnew)'执行循环替换原来的地址 strs=replace(strs,arrall(i),arrnew(i)) next cctv=strs
讲到这里,这个函数的基本过程就是这样了,当然可以对它进行改造就可以实现更多的功能,如:加上图片大小的限制,加上对本地机上的图片下载的限制,以免造成重复下载图片。同时也应该看到这个函数的不足之处是只能处理静态的图片文件,不能适用程序生成的图片。 |