<script runat=server language=vbscript> 

dim upfile_5xsoft_stream 

class upload_5xsoft 
   
dim form,file,version 
   
private sub class_initialize  
dim istart,ifilenamestart,ifilenameend,iend,vbenter,iformstart,iformend,thefile 
dim strdiv,mformname,mformvalue,mfilename,mfilesize,mfilepath,idivlen,mstr 
version="made by long" 
if request.totalbytes<1 then exit sub 
set form=createobject("scripting.dictionary") 
set file=createobject("scripting.dictionary") 
set upfile_5xsoft_stream=createobject("adodb.stream") 
upfile_5xsoft_stream.mode=3 
upfile_5xsoft_stream.type=1 
upfile_5xsoft_stream.open 
upfile_5xsoft_stream.write request.binaryread(request.totalbytes) 

vbenter=chr(13)&chr(10) 
idivlen=instring(1,vbenter)+1 
strdiv=substring(1,idivlen) 
iformstart=idivlen 
iformend=instring(iformstart,strdiv)-1 
while iformstart < iformend 
  istart=instring(iformstart,"name=""") 
  iend=instring(istart+6,"""") 
  mformname=substring(istart+6,iend-istart-6) 
  ifilenamestart=instring(iend+1,"filename=""") 
  if ifilenamestart>0 and ifilenamestart<iformend then 
   ifilenameend=instring(ifilenamestart+10,"""") 
   mfilename=substring(ifilenamestart+10,ifilenameend-ifilenamestart-10) 
   istart=instring(ifilenameend+1,vbenter&vbenter) 
   iend=instring(istart+4,vbenter&strdiv) 
   if iend>istart then 
    mfilesize=iend-istart-4 
   else 
    mfilesize=0 
   end if 
   set thefile=new fileinfo 
   thefile.filename=getfilename(mfilename) 
   thefile.filepath=getfilepath(mfilename) 
   thefile.filesize=mfilesize 
   thefile.filestart=istart+4 
   thefile.formname=formname 
   file.add mformname,thefile 
  else 
   istart=instring(iend+1,vbenter&vbenter) 
   iend=instring(istart+4,vbenter&strdiv) 

   if iend>istart then 
    mformvalue=substring(istart+4,iend-istart-4) 
   else 
    mformvalue=""  
   end if 
   form.add mformname,mformvalue 
  end if 

  iformstart=iformend+idivlen 
  iformend=instring(iformstart,strdiv)-1 
wend 
end sub 

private function substring(thestart,thelen) 
dim i,c,stemp 
upfile_5xsoft_stream.position=thestart-1 
stemp="" 
for i=1 to thelen 
   if upfile_5xsoft_stream.eos then exit for 
   c=ascb(upfile_5xsoft_stream.read(1)) 
   if c > 127 then 
    if upfile_5xsoft_stream.eos then exit for 
    stemp=stemp&chr(ascw(chrb(ascb(upfile_5xsoft_stream.read(1)))&chrb(c))) 
    i=i+1 
   else 
    stemp=stemp&chr(c) 
   end if 
next 
substring=stemp 
end function 

private function instring(thestart,varstr) 
dim i,j,bt,thelen,str 
instring=0 
str=tobyte(varstr) 
thelen=lenb(str) 
for i=thestart to upfile_5xsoft_stream.size-thelen 
   if i>upfile_5xsoft_stream.size then exit function 
   upfile_5xsoft_stream.position=i-1 
   if ascb(upfile_5xsoft_stream.read(1))=ascb(midb(str,1)) then 
    instring=i 
    for j=2 to thelen 
      if upfile_5xsoft_stream.eos then  
        instring=0 
        exit for 
      end if 
      if ascb(upfile_5xsoft_stream.read(1))<>ascb(midb(str,j,1)) then 
        instring=0 
        exit for 
      end if 
    next 
    if instring<>0 then exit function 
   end if 
next 
end function 

private sub class_terminate   
  form.removeall 
  file.removeall 
  set form=nothing 
  set file=nothing 
  upfile_5xsoft_stream.close 
  set upfile_5xsoft_stream=nothing 
end sub 
    
  
private function getfilepath(fullpath) 
  if fullpath <> "" then 
   getfilepath = left(fullpath,instrrev(fullpath, "\")) 
  else 
   getfilepath = "" 
  end if 
end  function 
  
private function getfilename(fullpath) 
  if fullpath <> "" then 
   getfilename = mid(fullpath,instrrev(fullpath, "\")+1) 
  else 
   getfilename = "" 
  end if 
end  function 

private function tobyte(str) 
   dim i,icode,c,ilow,ihigh 
   tobyte="" 
   for i=1 to len(str) 
   c=mid(str,i,1) 
   icode =asc(c) 
   if icode<0 then icode = icode + 65535 
   if icode>255 then 
     ilow = left(hex(asc(c)),2) 
     ihigh =right(hex(asc(c)),2) 
     tobyte = tobyte & chrb("&h"&ilow) & chrb("&h"&ihigh) 
   else 
     tobyte = tobyte & chrb(ascb(c)) 
   end if 
   next 
end function 
end class 


class fileinfo 
  dim formname,filename,filepath,filesize,filestart 
  private sub class_initialize  
    filename = "" 
    filepath = "" 
    filesize = 0 
    filestart= 0 
    formname = "" 
  end sub 
   
public function saveas(fullpath) 
    dim dr,errorchar,i 
    saveas=1 
    if trim(fullpath)="" or filesize=0 or filestart=0 or filename="" then exit function 
    if filestart=0 or right(fullpath,1)="/" then exit function 
    set dr=createobject("adodb.stream") 
    dr.mode=3 
    dr.type=1 
    dr.open 
    upfile_5xsoft_stream.position=filestart-1 
    upfile_5xsoft_stream.copyto dr,filesize 
    dr.savetofile fullpath,2 
    dr.close 
    set dr=nothing  
    saveas=0 
  end function 
end class 
</script>