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

📄 upload.asp

📁 集合了学习asp的100个实例
💻 ASP
字号:
<%

Class FileUploader

Public  File

Private Sub Class_Initialize()

    Set File = Server.CreateObject("Scripting.FileSystemObject")

End Sub

Private Sub Class_Terminate()

    set File=nothing

End Sub

Public Property Get Form(sIndex)

    Form = ""

End Property

Public Default Sub Upload()

    Dim biData, sInputName

    Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos

    Dim nPosFile, nPosBound

    biData = Request.BinaryRead(Request.TotalBytes)

    nPosBegin = 1

    nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

    If (nPosEnd-nPosBegin) <= 0 Then Exit Sub

    vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

    nDataBoundPos = InstrB(1, biData, vDataBounds)

    Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))

       nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))

       nPos = InstrB(nPos, biData, CByteString("name="))

       nPosBegin = nPos + 6

       nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))

       sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

       nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))

       nPosBound = InstrB(nPosEnd, biData, vDataBounds)

       If nPosFile <> 0 And  nPosFile < nPosBound Then

           Dim oUploadFile, sFileName

           Set oUploadFile = New UploadedFile

           nPosBegin = nPosFile + 10

           nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))

           sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

           oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))

           nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))

           nPosBegin = nPos + 14

           nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

           oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

           nPosBegin = nPosEnd+4

           nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2

           oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

           set File=oUploadFile

       Else

           nPos = InstrB(nPos, biData, CByteString(Chr(13)))

           nPosBegin = nPos + 4

           nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2

       End If

       nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)

    Loop

End Sub

Private Function CByteString(sString)

    Dim nIndex

    For nIndex = 1 to Len(sString)

        CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))

    Next

End Function

Private Function CWideString(bsString)

    Dim nIndex

    CWideString =""

    For nIndex = 1 to LenB(bsString)

        CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) 

    Next

End Function

End Class

Class UploadedFile

    Public ContentType

    Public FileName

    Public FileData

    Public Property Get FileSize()

    FileSize = LenB(FileData)

    End Property

    Public Sub SaveToDisk(sPath)

        Dim oFS, oFile

        Dim nIndex

        If sPath = "" Or FileName = "" Then Exit Sub

        If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"

        Set oFS = Server.CreateObject("Scripting.FileSystemObject")

        If Not oFS.FolderExists(sPath) Then Exit Sub

        Set oFile = oFS.CreateTextFile(sPath & FileName, True)

        For nIndex = 1 to LenB(FileData)

            oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))

        Next

        oFile.Close

    End Sub

End Class

%>

⌨️ 快捷键说明

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