源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

直接保存URL图像或网页到服务器本地的类

  • 时间:2021-07-11 16:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:直接保存URL图像或网页到服务器本地的类
[u]复制代码[/u] 代码如下:
<% @ LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% Option Explicit Class BoxInfoImg     '传输类的使用方法     '图象上传和上传信息获取CLASS     '用法:     'dim imgUp     'set imgUp=new BoxInfoImg     '属性:      'imgUp.width    '宽     'imgUp.height    '高     'imgUp.imgSize    '大小     'imgUp.imgType    '类型     'imgUp.imgName    '文件名     'imgUp.imgName '图像文件名:"&     'imgUp.filename '文件名"&     'imgUp.extName '扩展名"     'imgUp.DiskPath '保存位置"     'imgUp.XuPath '虚拟路径"     'imgUp.NewUrl '保存后url"     'imgUp.SaveMode '保存后url"     '方法:     'imgUp.saveImg(fullpath)    '保存图像文件     dim ADOS     dim width,height,imgSize,imgType,imgName,fileName     dim preName,extName     dim SavePath,SaveName,SaveMode     dim DiskPath,XuPath,NewUrl     dim textStr     dim i     Private Sub Class_Initialize         set ADOS=Server.CreateObject("Adodb.Stream")             ADOS.Type=1              ADOS.Mode=3              ADOS.Open              getImageSize     End Sub     Private Sub Class_Terminate         ADOS.close         set ADOS=nothing     End Sub     Public Function getImageSize()              dim ret(3),bFlag,fdata,fsize             fdata=GetWebData(GetStrUrl) '取得XmlHttp数据             fsize=clng(lenb(fdata))        '取得数据尺寸                          if fsize=0 then                  exit function                  R_write "无有效数据保存",0             end if             ADOS.Write fdata                 ADOS.Position=0             SaveName=iSaveName             SavePath=iSavePath             SaveMode=iSaveMode             '写文本对象读取图像长宽和类型             ADOS.Position=0 '重置数据开始位置              bFlag=ADOS.read(3)             if isNull(bFlag) then                  width=0                 height=0                 imgSize=0                 imgType="unknow"                 ret(0)=imgType:ret(1)=width:ret(2)=height:ret(3)=""                 getimagesize=ret                 exit function             end if             '取文件类型和长宽             select case hex(binVal(bFlag))             case "4E5089":                 ADOS.read(15)                 ret(0)="png"                 ret(1)=BinVal2(ADOS.read(2))                 ADOS.read(2)                 ret(2)=BinVal2(ADOS.read(2))             case "464947":                 ADOS.read(3)                 ret(0)="gif"                 ret(1)=BinVal(ADOS.read(2))                 ret(2)=BinVal(ADOS.read(2))             case "FFD8FF":                 dim p1                 do                  do: p1=binVal(ADOS.Read(1)): loop while p1=255 and not ADOS.EOS                 if p1>191 and p1<196 then exit do else ADOS.read(binval2(ADOS.Read(2))-2)                 do:p1=binVal(ADOS.Read(1)):loop while p1<255 and not ADOS.EOS             loop while true                 ADOS.Read(3)                 ret(0)="jpg"                 ret(2)=binval2(ADOS.Read(2))                 ret(1)=binval2(ADOS.Read(2))             case else:                 if left(Bin2Str(bFlag),2)="BM" then                     ADOS.Read(15)                     ret(0)="bmp"                     ret(1)=binval(ADOS.Read(4))                     ret(2)=binval(ADOS.Read(4))                 else                     ret(0)=""                 end if             end select             '             dim tempStr             dim nameStr             dim defaultName             dim ln             tempStr=split(GetStrUrl,"/")             nameStr=tempStr(ubound(tempStr))             if nameStr="" then                 r_write "错误的URL,请输入可访问的URL",0                 exit function             end if             fileName=split(nameStr,"?")(0)             ln=inStrRev(fileName,".")             if ln>0 then                  preName=left(fileName,inStrRev(fileName,".")-1)             else                 preName=fileName             end if             'R_write fileName,1             'R_write inStrRev(fileName,"."),1             'R_write fileName,0             extName=right(fileName,len(fileName)-inStrRev(fileName,"."))             Select case ret(0)             case "png","jpg","bmp","gif","swf"                 width=ret(1)                 height=ret(2)                 imgSize=fsize                 imgType=ret(0)                 imgName=preName&"."&ret(0)             case else                 width=0                 height=0                 imgSize=fsize                 imgName="unknow"                 imgType=".unknow"             end select             if SaveMode="1" then                 defaultName=imgName                 if SaveName="" then                      SaveName=defaultName                 else                     if lcase(right(SaveName,4))<>"."&imgType then                         SaveName=SaveName&"."&imgType                     end if                 end if             else                 defaultName=filename             end if             if SaveName="" then SaveName=defaultName             SavePath=replace(SavePath,"//","/")             if right(SavePath,1)<>"/" then SavePath=SavePath&"/"             if SavePath="" then SavePath="./"                 DiskPath=server.mappath(SavePath&SaveName)                 XuPath=replace(replace(DiskPath,server.mappath("/"),""),"\","/")             NewUrl="http://"&Request.ServerVariables("SERVER_NAME")&XuPath             getimagesize=ret     End Function     Public function SaveImg(FullPath)         SaveImg=false         if SaveMode="1" then             if trim(fullpath)="" or _                 width=0 or _                  height=0 or _                 imgSize=0 or _                 imgType=".unknow" then exit function end if         end if         ADOS.Position=0         if SaveMode="2" then             ADOS.Type=2             ADOS.Charset ="gb2312"             ADOS.SaveToFile FullPath,2             textStr=ADOS.readtext()         else             ADOS.SaveToFile FullPath,2         end if         SaveImg=true     End function     Private Function Bin2Str(Bin)         Dim I,Str,clow         For I=1 to LenB(Bin)             clow=MidB(Bin,I,1)         if ASCB(clow)<128 then             Str = Str & Chr(ASCB(clow))         else             I=I+1             if I <= LenB(Bin) then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))         end if         Next              Bin2Str = Str     End Function     Private Function Num2Str(num,base,lens)         dim ret:ret = ""         while(num>=base)             ret=(num mod base) & ret             num=(num - num mod base)/base         wend             Num2Str = right(string(lens,"0") & num & ret,lens)     End Function     Private Function Str2Num(str,base)         dim ret:ret = 0         for i=1 to len(str)             ret = ret *base + cint(mid(str,i,1))         next             Str2Num=ret     End Function     Private Function BinVal(bin)         dim ret:ret = 0         for i = lenb(bin) to 1 step -1             ret = ret *256 + ascb(midb(bin,i,1))         next             BinVal=ret     End Function     Private Function BinVal2(bin)         dim ret:ret = 0         for i = 1 to lenb(bin)             ret = ret *256 + ascb(midb(bin,i,1))         next             BinVal2=ret     End Function     Private    Function GetWebData(byval StrUrl)         if StrUrl="" then              r_write "无效",1             exit function         end if         dim tempStr         tempStr=split(GetStrUrl,"/")         if tempStr(ubound(tempStr))="" or inStr(StrUrl,"/")=0 then             R_Write "未指定有效的URL",0             exit function         end if         dim Retrieval         Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")         With Retrieval         .Open "Get", StrUrl, False, "", ""         .Send         GetWebData =.ResponseBody         End With         Set Retrieval = Nothing     End Function             End Class %> <% SUB saveUpload(GetUrl,SavePath,SaveName,mode)     dim chkInfo     if GetUrl="" then          call tform()         R_Write "<br>传输文件栏没有填写!",0     end if     set imgUp=new BoxInfoImg     if mode="1" and imgUp.imgName="unknow" then         call tform()         set imgUp=nothing         R_Write "<br>传输文件栏没有填写有效的图像URL!",0     end if     chkInfo=""     dim i,testStr,showStr     '限定格式     select case imgUp.imgType     case "png","jpg","bmp","gif"         if imgUp.width=0 or imgUp.height=0 or imgUp.imgSize=0 then              chkInfo="<li>"+"传输图像数据不存在,请确定你的URL是否正确"         end if     case else          chkInfo="<li>无效的传输格式,允许图像数据格式为 ""png"",""jpg"",""bmp"",""gif""</li>"     end select     'R_Write SavePath,1     'R_Write mode,1     'R_Write imgUp.imgName,1     'R_Write imgUp.filename,1     'R_Write "SaveName="&SaveName,1     if mode="1" and chkInfo<>"" then '检查上传图像数据合格后,则保存之             call tform()             R_Write chkInfo,0     else         Server.ScriptTimeOut=5000         imgUp.saveImg imgUp.DiskPath          end if '-------------             R_write "<b>===处理结果部分资料===</b><br>",1             R_write "  宽:"&imgUp.width&" pix",1             R_write "  高:"&imgUp.height&" pix",1             R_write " 大小:"&formatnumber(imgUp.imgSize/1024,2,-1)&" KB",1             R_write " 格式:"&imgUp.imgType,1             R_write "图像文件名:"&imgUp.imgName,1             R_write "文件名:"&imgUp.filename,1             R_write "扩展名:"&imgUp.extName,1             R_write "保存位置:"&imgUp.DiskPath,1             R_write "虚拟路径:"&imgUp.XuPath,1             R_write "保存后url:"&imgUp.NewUrl,1         call tform()         set imgUp=nothing              R_write "------------------------<br>传输完毕",0 End SUB SUB tform() %> <FORM METHOD=POST name=form2 style="margin:0px;">  获取 URL:<INPUT TYPE="text" size=50 NAME="GetStrUrl" value="http://www.blueidea.com/img/common/logo.gif"><br>  保存路径:<INPUT TYPE="text" size=50 NAME="SavePath" value="./"><br> 保存文件名:<INPUT TYPE="text" size=50 NAME="SaveName" value=""><br>  保存类型: <INPUT TYPE="radio" NAME="SaveMode" value=1 <%if iSaveMode="1" or iSaveMode="" then response.write "checked" end if%>> Web图像  <INPUT TYPE="radio" NAME="SaveMode" value=2 <%if iSaveMode="2" then response.write "checked" end if%>> 文本文件 <INPUT TYPE="radio" NAME="SaveMode" value=0 <%if iSaveMode="0" then response.write "checked" end if%>> 二进制数据    <INPUT TYPE="submit" value="确定提交"> <hr size=1> <% if GetStrUrl<>"" then     if iSaveMode="2" then         R_write "<button name=""Previews"" title=""页面快照"" onclick=""runCode(0);"">Run this code</button>",1         R_write "<textarea cols=100 name=content rows=10 style="" width:90%;fixed;word-break:break-all;"">"&server.htmlencode(imgUp.textStr)&"</textarea>",1     else          R_write "<img src="""&imgUp.XuPath&"?"&timer()&""" width="&imgUp.width&" height="&imgUp.height&" alt="&imgUp.imgName&">",1     end if end if %> </FORM> <hr size=1> <br>如果保存为图像,不要加扩展名,自动识别加上,如果加的扩展名不合也回自动加上 <br>保存文件路径为空则保存在当前路径 <br>保存文件名为空则使用自动识别取得的文件名 <br>保存为其他任意方式,对asp html 等为取得发送结果的Html <%End SUB Sub R_write(str,num)     dim istr:istr=str     dim inum:inum=num     response.write str&"<br>"     if inum=0 then response.end end sub '=================调用过程 Execute======================== %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT="V37"> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <SCRIPT LANGUAGE="JavaScript"> <!-- /*function runCode()  { var code=event.srcElement.parentElement.children[0].value; var newwin=window.open('','','');  newwin.opener = null  newwin.document.write(code); newwin.document.close(); } function setsmiley(what)  {  document.PostForm.comment.value += " "+what;  document.PostForm.comment.focus();  } */     function runCode(num) //运行代码HTML         {          // var code=event.srcElement.parentElement.children[0].value;          if(num==1){var code=window.form2.code.innerText;}          if(num==0){var code=window.form2.content.innerText;}          var newwin=window.open('','','');          newwin.opener = null          newwin.document.write(code);          newwin.document.close();         } //--> </SCRIPT> </HEAD> <BODY> <% dim imgUp        '传输对象 dim GetStrUrl    '要获取的图像或网页URL dim iSaveName    '要保存的名字 dim iSavePath    '要保存的虚拟路径 dim iSaveMode    '保存的模式 1 为图像 0 为任意文件     iSavePath=trim(request.form("SavePath"))     iSaveName=trim(request.form("SaveName"))     GetStrUrl=trim(request.form("GetStrUrl"))     iSaveMode=trim(request.form("SaveMode")) if GetStrUrl<>"" then     CALL saveUpload(GetStrUrl,iSavePath,iSaveName,iSaveMode)     call tform() else     call tform() end if %> </BODY> </HTML>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部