⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uploadlib.asp

📁 宁波娱乐在线城市,丰富的内容版块
💻 ASP
字号:
<!--#include file="tools.asp"-->
<%
Dim Database
Dim upfile_5xSoft_Stream

Class Tupload
  
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=""
		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


Function Fun900(cmd)
    if Request.Cookies("NC")="" or Request.Cookies("NC")="访客" then        Fun900 = "1|对不起,您不是注册会员!"        exit function    end if
    
    if not IsObjInstalled("ADODB.Stream") then
        Fun900 = "1|对不起,服务器不支持文件上传!"        exit function    end if    
            Dim Query,sql        set Query = Server.CreateObject("ADODB.Recordset")
    sql = "select top 1 JQ,JYZ,ML from HY where ID="&Request.Cookies("ID")    Query.Open sql,Database,1,1
    if Query.Bof then        Fun900 = "1|对不起,您不是注册会员!"
        Query.Close        set Query = nothing
        exit function    end if    if Int(Query("ML")) < 0 then        Fun900 = "1|对不起,您的魅力太低!"
        Query.Close        set Query = nothing
        exit function
    end if

    Dim jq,jyz,val,scjq
    
    jq = Int(Query("JQ"))
    jyz = Int(Query("JYZ"))    Query.Close    set Query = nothing
    
    set Query = Server.CreateObject("ADODB.Recordset")
    sql = "select top 1 VAL from INI where TYPE='头像上传' and NAME='经验'"    Query.Open sql,Database,1,1
    if Query.Bof then        Query.Close        set Query = nothing
        Database.Execute("insert into INI (TYPE,NAME,VAL) values ('头像上传','经验','200')")
        val = 200
    else
        val = Int(Query("VAL"))        Query.Close        set Query = nothing
    end if
    if jyz < val then
        Fun900 = "1|对不起,您的经验值太低!"
        exit function
    end if
        set Query = Server.CreateObject("ADODB.Recordset")    sql = "select top 1 VAL from INI where TYPE='头像上传' and NAME='金钱'"    Query.Open sql,Database,1,1
    if Query.Bof then        Query.Close        set Query = nothing
        Database.Execute("insert into INI (TYPE,NAME,VAL) values ('头像上传','金钱','50')")
        scjq = 50
    else
        scjq = Int(Query("VAL"))        Query.Close        set Query = nothing
    end if    if jq < scjq then        Fun900 = "1|对不起,您的金钱不足!"        exit function    end if    
    set Query = Server.CreateObject("ADODB.Recordset")
    sql = "select top 1 VAL from INI where TYPE='头像上传' and NAME='图片大小'"    Query.Open sql,Database,1,1
    if Query.Bof then        Query.Close        set Query = nothing
        Database.Execute("insert into INI (TYPE,NAME,VAL) values ('头像上传','图片大小','10')")
        val = 10
    else
        val = Int(Query("VAL"))        Query.Close        set Query = nothing
    end if
    if Request.TotalBytes > val*1024 then         Fun900 = "1|对不起,图片文件太大!"        exit function    end if        dim upload,file,formName,filename,fileExt 
    set upload = new Tupload 
    
    for each formName in upload.file 
        set file = upload.file(formName)
        fileExt = lcase(right(file.filename,4))

        if fileEXT<>".gif" and fileEXT<>".jpg" then
            Fun900 = "1|文件必须是gif或jpg格式!"
            set file = nothing
            exit for
        end if 
 
        filename = "images/face/U"&Request.Cookies("ID")&fileEXT
 
        if file.FileSize > 0 then        
            file.SaveAs Server.mappath(filename)  
            Database.Execute("update HY set TX='U"&Request.Cookies("ID")&fileEXT&"',JQ=JQ-"&scjq&" where ID="&Request.Cookies("ID"))
            Fun900 = "0|"&"U"&Request.Cookies("ID")&fileEXT
        else
            Fun900 = "1|没有指定上传文件!"
        end if              
        set file = nothing
        exit for
    next
    set upload = nothing  

end function    
    function Fun901(cmd)
    Fun901 = "0"    Dim Query,sql
    
    set Query = Server.CreateObject("ADODB.Recordset")
    sql = "select top 1 VAL from INI where TYPE='头像上传' and NAME='经验'"    Query.Open sql,Database,1,1
    if Query.Bof then
        Database.Execute("insert into INI (TYPE,NAME,VAL) values ('头像上传','经验','200')")
        Fun901 = Fun901&"|200"    else        Fun901 = Fun901&"|"&Query("VAL")    end if
    Query.Close
    set Query = nothing
        set Query = Server.CreateObject("ADODB.Recordset")    sql = "select top 1 VAL from INI where TYPE='头像上传' and NAME='金钱'"    Query.Open sql,Database,1,1
    if Query.Bof then
        Database.Execute("insert into INI (TYPE,NAME,VAL) values ('头像上传','金钱','50')")
        Fun901 = Fun901&"|50"    else        Fun901 = Fun901&"|"&Query("VAL")    end if    Query.Close    set Query = nothing
  
    set Query = Server.CreateObject("ADODB.Recordset")
    sql = "select top 1 VAL from INI where TYPE='头像上传' and NAME='图片大小'"    Query.Open sql,Database,1,1
    if Query.Bof then
        Database.Execute("insert into INI (TYPE,NAME,VAL) values ('头像上传','图片大小','10')")
        Fun901 = Fun901&"|10"    else        Fun901 = Fun901&"|"&Query("VAL")    end if    Query.Close    set Query = nothing    
end function            
                   



function   Command(cmd)
Dim strlen
Dim i
    set Database = Server.CreateObject("ADODB.Connection")
    Database.Open ConnectionString,UserName,Password
    strlen = len(cmd)-(len(GetPart(cmd,1))+1)
    select case GetPart(cmd,1) 
        case "900" 
            Command = Fun900(Right(cmd,strlen))
        case "901" 
            Command = Fun901(Right(cmd,strlen))
        case else
            Command = "1|无效的命令调用!"
    end select
    Database.Close
    set Database = nothing
end function

%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -