zoukankan      html  css  js  c++  java
  • ASP实现多图片上传(三)

    upload.inc
    <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=""
            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>
    save.asp
    <% dim dsn,conn
    dsn="driver={sql server};server=127.0.0.1;uid=sa;pwd=;database=database"
    set conn=server.createobject("adodb.connection")
    conn.open dsn
    %>
    <% dim file,file1,file2
    file=trim(request.form("myface"))
    file1=trim(request.form("myface1"))
    file2=trim(request.form("myface2"))
    set rs=server.createobject("adodb.recordset")
    sql="Insert Into sFile(image,image1,image2) Values(’"& file &"’,’"& file1&"’,’"& file2&"’)" 
    conn.execute(sql)
    response.redirect "ok.asp"
    %>

    本文来源于 WEB开发网 原文链接:http://www.cncms.com.cn/asp/5006_6.htm

  • 相关阅读:
    关于用户体验的几张图片
    上下翻滚JS特效代码
    关注程序员健康之——缺失营养时的六种信号
    C#基础知识系列之——for循环
    关于程序中的需求的变化,责任的分配
    Silverlight学习之——Canvas对象
    还是觉得应该动手写点东西....
    怎样理解“道不同,不相为谋”这句话呢。。。
    UML图中最基本的是类图
    .NET中各种数据库连接大全
  • 原文地址:https://www.cnblogs.com/kuyuecs/p/1294586.html
Copyright © 2011-2022 走看看