当前位置: 移动技术网 > IT编程>开发语言>Asp > asp制作中常用到的函数库集合第1/8页

asp制作中常用到的函数库集合第1/8页

2017年12月12日  | 移动技术网IT编程  | 我要评论

'************************************************** 
  '函数id:0025[取得数据库链接字串] 
  '函数名:getconnstr 
  '作 用:取得数据库链接字串,能生成msaccess和mssqlserver链接串 
  '参 数:lx ---- 0 是msaccess , 1 是mssqlserver 
  '参 数:dbiporpath ---- 数据库ip或路径 
  '参 数:dbmc ---- 数据库名称 
  '参 数:dbuid ---- 数据库用户名称 
  '参 数:dbupwd ---- 数据库用户密码 
  '返回值:链接字串 
  '示 例:http://www.knowsky.com/ 
  '************************************************** 
  public function getconnstr(byval lx,byval dbiporpath,byval dbmc,byval dbuid,byval dbupwd) 
   getconnstr="" 
   if lx=0 then 
   if right(dbiporpath,1)<>"\" then dbiporpath=dbiporpath & "\" 
   getconnstr ="provider=microsoft.jet.oledb.4.0;data source="&dbiporpath&dbmc&";jet oledb:database password="&dbupwd&";" 
   end if 
   if lx=1 then 
   getconnstr ="driver=sql server;uid="&dbuid&";database="&dbmc&";server="&dbiporpath&";pwd="&dbupwd&";" 
   end if 
  end function 
  '************************************************** 
  '函数id:0026[取得multipart/form-data形式上传文件] 
  '函数名:getimagedata 
  '作 用:取得multipart/form-data形式上传文件 
  '参 数:maxsize ---- 上传的限止大小,单位:m(兆) 
  '返回值:二进制数据 
  '示 例: 
  '************************************************** 
  public function getimagedata(byval maxsize) 
   getimagedata="" 
   dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata 
   formsize=request.totalbytes 
   if (formsize<=(maxsize*1024*1024)) then 
   formdata=request.binaryread(formsize) 
   pos_ts=lenb(getbytestring(chr(13) & chr(10) & chr(13) & chr(10))) 
   pos_b=instrb(formdata,getbytestring(chr(13) & chr(10) & chr(13) & chr(10)))+pos_ts 
   nformdata=midb(formdata,pos_b) 
   pos_ts=instrb(nformdata,getbytestring(chr(13) & chr(10) & "--")) 
   nnformdata=midb(nformdata,pos_ts) 
   pos_e=lenb(formdata)-lenb(nnformdata)-pos_b+1 
   datastart =pos_b 
   dataend=pos_e 
   mydata=midb(formdata,datastart,dataend) 
   end if 
   getimagedata=mydata 
  end function 
  '''' 将字串转为二进制串 
  function getbytestring(stringstr) 
   for i=1 to len(stringstr) 
   char=mid(stringstr,i,1) 
   getbytestring=getbytestring & chrb(ascb(char)) 
   next 
  end function 
  '************************************************** 
  '函数id:0027[保存或查看上传到数据库中的数据,带调用上传窗口] 
  '函数名:goimgtodb 
  '作 用:保存或查看上传到数据库中的数据,带调用上传窗口 
  '参 数:pplx ---- 执行类型(空为保存,id号为查看该id的文件) 
  '参 数:purl ---- 主执行程序的url部份 
  '参 数:connstr ---- 上传文件的数据库链接字串 
  '参 数:imagtbname ---- 文件保存的数据表名称 
  '参 数:did ---- 文件id字段名 
  '参 数:dmc ---- 文件名称字段名 
  '参 数:dlx ---- 文件类型字段名 
  '参 数:dmem ---- 文件说明字段名 
  '参 数:ddata ---- 文件的二进制数据的字段名 
  '参 数:maxsize ---- 上传的限止大小,单位:m(兆) 
  '参 数:idlx ---- 标识id字段的类型 ( 0 字符型 1 数值(非自增量型) 2 数值型(自增量型) ) 
  '返回值:成功保存的javascript 注在非自动增量情况下标识字段长度应超过20个字符 
  '示 例:goimgtodb("17","http://127.0.0.1/function.asp",getconnstr(1,"127.0.0.1","temp","sa","mzy1029"),"img","id","mc","lx","mem","data",20) 
  '示 例:goimgtodb("","http://127.0.0.1/function.asp",getconnstr(1,"127.0.0.1","temp","sa","mzy1029"),"img","id","mc","lx","mem","data",20) 
  '************************************************** 
  public function goimgtodb(byval pplx,byval purl,byval connstr,byval imagtbname,byval did,byval dmc,byval dlx,byval dmem,byval ddata,byval maxsize,byval idlx) 
   dim pjobs,pjurl 
   tempimg_conn_str=connstr 
   set fu_conn=server.createobject("adodb.connection") 
   set fu_rs=server.createobject("adodb.recordset") 
   fu_conn.open tempimg_conn_str 
   if jcid(pplx)=0 then 
   pjobs=request("img") 
   if instr(purl,"?")>0 then 
   pjurl=purl&"&img=sav" 
   else 
   pjurl=purl&"?img=sav" 
   end if 
   if pjobs="" then response.write posimagewin(pjurl) 
   if pjobs="sav" then 
   sql_str="select "&did&","&dmc&","&dlx&","&dmem&","&ddata&" from "&imagtbname 
   fu_rs.open sql_str,fu_conn,3,3 
   fu_rs.addnew 
   if idlx < 2 then 
   fu_rs(did) =maketheid() 
   end if 
   fu_rs(dmc) =request("mc") 
   fu_rs(dlx) =request("lx") 
   fu_rs(dmem) =request("mem") 
   fu_rs(ddata).appendchunk getimagedata(jcid(maxsize)) 
   fu_rs.update 
   fu_rs.close 
   fu_rs.open sql_str,fu_conn,3,3 
   fu_rs.movelast 
   response.write "<script language=javascript>"&vbcrlf 
   response.write "parent.pomem.imageid.value='"&fu_rs(did)&"';"&vbcrlf 
   response.write "parent.bc.innerhtml='已成功保存数据!';" 
   response.write "</script>"&vbcrlf 
   end if 
   else 
   if idlx > 0 then 
   sql_str="select "&did&","&dmc&","&dlx&","&dmem&","&ddata&" from "&imagtbname&" where ("&did&" ="&pplx&")" 
   else 
   sql_str="select "&did&","&dmc&","&dlx&","&dmem&","&ddata&" from "&imagtbname&" where ("&did&" ='"&pplx&"')" 
   end if 
   fu_rs.open sql_str,fu_conn,1,1 
   if fu_rs.recordcount >0 then 
   tempaa=trim(fu_rs(dlx)) 
   response.clear 
   response.expires = -9999 
   response.addheader "pragma", "no-cache" 
   response.addheader "cache-ctrol", "no-cache" 
   response.buffer = true 
   response.addheader "content-disposition:","attachment;filename="&fu_rs(dmc)&"."&tempaa 
   response.contenttype="application/"&trim(fu_rs(dlx)) 
   response.flush 
   response.binarywrite fu_rs(ddata) 
   response.end 
   end if 
   end if 
   fu_rs.close 
   fu_conn.close 
   set fu_rs = nothing 
   set fu_conn = nothing 
  end function 
  '**************************************************'''' 
  '函数id:0028[取得图像的类型|宽|高] 
  '函数名:getimagedx 
  '作 用:取得图像的类型|宽|高 
  '参 数:filepath ---- 文件路径及文件命名 
  '返回值:"类型|宽|高" 
  '**************************************************'''' 
  public function getimagedx(byval filepath) 
   dim tempsm,nbxx,wjxx(3) 
   set tempsm = server.createobject("adodb.stream") 
   tempsm.mode=3 
   tempsm.type=1 
   tempsm.open 
   tempsm.loadfromfile filepath 
   nbxx=hex(binval(tempsm.read(3))) 
   wjxx(0)=nbxx 
   wjxx(1)="0" 
   wjxx(2)="0" 
   if nbxx="464947" then 
   wjxx(0)="gif" 
   tempsm.read(3) 
   wjxx(1)=binval(tempsm.read(2)) 
   wjxx(2)=binval(tempsm.read(2)) 
   end if 
   if nbxx="ffd8ff" then 
   wjxx(0)="jpg" 
   do 
   do: p1=binval(tempsm.read(1)): loop while p1=255 and not tempsm.eos 
   if p1>191 and p1<196 then exit do else tempsm.read(binval2(tempsm.read(2))-2) 
   do:p1=binval(tempsm.read(1)):loop while p1<255 and not tempsm.eos 
   loop while true 
   tempsm.read(3) 
   wjxx(2)=binval2(tempsm.read(2)) 
   wjxx(1)=binval2(tempsm.read(2)) 
   end if 
   if mid(nbxx,3)="4d42" then 
   tempsm.read(15) 
   wjxx(0)="bmp" 
   wjxx(1)=binval(tempsm.read(4)) 
   wjxx(2)=binval(tempsm.read(4)) 
   end if 
   if nbxx="4e5089" then 
   wjxx(0)="png" 
   tempsm.read(15) 
   wjxx(1)=binval2(tempsm.read(2)) 
   tempsm.read(2) 
   wjxx(2)=binval2(tempsm.read(2)) 
   end if 
   if nbxx="535743" then 
   wjxx(0)="swf" 
   tempsm.read(5) 
   bindata=tempsm.read(1) 
   sconv=num2str(ascb(bindata),2 ,8) 
   nbits=str2num(left(sconv,5),2) 
   sconv=mid(sconv,6) 
   while(len(sconv)<nbits*4) 
   bindata=tempsm.read(1) 
   sconv=sconv&num2str(ascb(bindata),2 ,8) 
   wend 
   wjxx(1)=int(abs(str2num(mid(sconv,1*nbits+1,nbits),2)-str2num(mid(sconv,0*nbits+1,nbits),2))/20) 
   wjxx(2)=int(abs(str2num(mid(sconv,3*nbits+1,nbits),2)-str2num(mid(sconv,2*nbits+1,nbits),2))/20) 
   end if 
   tempsm.close 
   set tempsm=nothing 
   getimagedx = wjxx(0)&"|"&wjxx(1)&"|"&wjxx(2) 
  end function 
  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 
  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 
  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 
  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 
5

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网