Dator > hur du lägger upp filer via html och asp

  • hur du lägger upp filer via html och asp


  • Active Server Pages ( ASP ) är en Microsoft- produkt som använder serversidan skript för att göra dina webbsidor interaktiva och dynamiska . HTML är ansvarig för vad användaren ser , medan den behandling som pågår i bakgrunden hanteras av ASP -kod . Om du äger en webbplats och använda ASP för att köra det , kommer dina användare eller kunder behöver använda HTML-kod för att ladda upp filen med ett ASP -program för att spara det

    DLL -inställningar


    1 .
    Klicka på " Arkiv> Nytt " och starta en ny ActiveX- DLL-projekt från din Visual Basic Editor.
    2 .
    Ändra namnet på filen " Klass 1 " till " Fil ".
    3 .
    Klicka på " Project > Referenser " och Kontrollera följande referenser har bockar bredvid dem : Visual Basic for Applications , Visual Basic objekt runtime och förfaranden , Visual Basic objekt och rutiner , OLE automation , COM + tjänster typ bibliotek , Microsoft Active Server Pages objekt , bibliotek Microsoft Scripting Runtime .
    4 .
    Klicka på " Project > Project Properties " check sedan " obevakade utförande " och " bevaras i minnet , " klicka " OK ".
    5 .

    Kopiera och klistra in följande kod File. cls :
    Option Explicit

    Const ERR_INVALID_FILENAME=vbObjectError + 1000
    Const ERR_INVALID_TARGET=vbObjectError + 1001
    Const ERR_FILE_EXISTS=vbObjectError + 1002
    Const ERR_UPLOAD_CALLED=vbObjectError + 1003
    Const VB_ERR_PATH_NOT_FOUND=76

    Privat m_objContext Som ObjectContext
    Privat m_objRequest Som ASPTypeLibrary . Begär

    Privat m_strTarget As String
    Privat m_strFileName As String
    Privat m_blnOverWrite As Boolean
    Privat m_blnUploaded As Boolean
    Privat m_lngTotalBytes As Long

    "alla andra formulärelement gå hit .
    Privat m_formCol Som Scripting. Dictionary

    Redskap ObjectControl

    privat tillställning ObjectControl_CanBePooled () As Boolean
    ObjectControl_CanBePooled=False
    End Function

    Private Sub ObjectControl_Activate ( )
    Set m_objContext=GetObjectContext ( )
    Set m_objRequest=m_objContext ( " Request " )
    Set m_formCol=Nytt Scripting . Ordbok
    End Sub

    Private Sub ObjectControl_Deactivate ( )
    Set m_objContext=Nothing Set
    m_objRequest=Nothing Set
    m_formCol=Inget
    End Sub

    Public Sub Upload ( )

    Const DEFAULT_CHUNK_SIZE=262. 144 饘kb

    Dim bytBeginOfChunk ( ) As Byte
    Dim bytEndOfChunk () As Byte
    Dim bytBeginOfName ( ) As Byte
    Dim bytEndOfName ( ) As Byte
    Dim bytBeginOfFile ( ) As Byte
    Dim bytEndOfFile ( ) As Byte
    Dim bytBeginOfValue () As Byte
    Dim bytEndOfValue ( ) As Byte
    Dim bytName ( ) As Byte
    Dim bytValue ( ) As Byte
    Dim bytThisChunk ( ) As Byte
    Dim bytFileName () As Byte
    Dim lngBeginOfChunk As Long
    Dim lngEndOfChunk As Long

    Dim lngBeginOfAttribute As Long
    Dim lngEndOfAttribute As Long
    Dim lngBeginOfValue As Long Dim
    lngEndOfValue As Long
    Dim blnEndOfData As Boolean
    Dim lngChunkSize As Long
    Dim lngBytesLeft As Long
    Dim lngFileNum As Long
    Dim strFileName As String

    On Error GoTo UploadErr

    Om Uppladdad Då
    Err . Höj ERR_UPLOAD_CALLED , App. Title , "Den uppladdningsmetod redan blivit kallad . "
    End If

    bytBeginOfChunk=StrConv ("-------------- ---------------", vbFromUnicode )
    bytEndOfChunk=StrConv ("---------------------- -------", vbFromUnicode )

    bytBeginOfName=StrConv ( " name=" , vbFromUnicode ) ChrB (34 )
    bytEndOfName=ChrB (34 )

    bytBeginOfFile=StrConv ( " filnamn=" , vbFromUnicode ) ChrB (34 )
    bytEndOfFile=ChrB (34 )
    6 .
    Klipp och klistra in denna kod direkt under koden i föregående steg :
    bytBeginOfValue=ChrB (13) ChrB (10 ) ChrB (13) ChrB (10 )
    bytEndOfValue=ChrB (13 ) ChrB (10 ) StrConv ("-----------------------------", vbFromUnicode )

    " Initiera bit storlek .
    Om m_objRequest. TotalBytes <= DEFAULT_CHUNK_SIZE Då
    lngChunkSize=m_objRequest. TotalBytes
    Else
    lngChunkSize=DEFAULT_CHUNK_SIZE
    End If

    "Hämta den bit från begäran objektet .
    bytThisChunk=m_objRequest. BinaryRead ( CVar ( lngChunkSize ) )

    " Initiera värde .
    lngBeginOfChunk=1

    " Upprepa tills slutet av data .
    Har visserligen inte blnEndOfData
    " Börja bit .
    lngBeginOfChunk=InStrB ( lngBeginOfChunk , bytThisChunk , bytBeginOfChunk ) + UBound ( bytBeginOfChunk )

    " Hämta namnet på objektet .
    lngBeginOfAttribute=InStrB ( lngBeginOfChunk , bytThisChunk , bytBeginOfName ) + UBound ( bytBeginOfName ) + 1
    lngEndOfAttribute=InStrB ( lngBeginOfAttribute , bytThisChunk , bytEndOfName )
    bytName=MidB ( bytThisChunk , lngBeginOfAttribute , lngEndOfAttribute-lngBeginOfAttribute )

    "Hämta värdet på objektet .
    lngBeginOfValue=InStrB ( lngEndOfAttribute , bytThisChunk , bytBeginOfValue , vbBinaryCompare ) + UBound ( bytBeginOfValue ) + 1
    lngEndOfValue=InStrB ( lngBeginOfValue , bytThisChunk , bytEndOfValue , vbBinaryCompare )

    Om lngEndOfValue=0 Then
    " Artikeln utvidgar de senaste aktuella bit . .
    bytValue=MidB ( bytThisChunk , lngBeginOfValue , lngChunkSize )
    Else
    " Posten värde finns i det nuvarande bit
    bytValue=MidB ( bytThisChunk , lngBeginOfValue , lngEndOfValue-lngBeginOfValue )
    End If

    Om ucase ( StrConv ( bytName , vbUnicode ) )=" FIL " Då
    lngBeginOfAttribute=InStrB ( lngBeginOfChunk , bytThisChunk , bytBeginOfFile , vbBinaryCompare ) + UBound ( bytBeginOfFile ) + 1
    lngEndOfAttribute=InStrB ( lngBeginOfAttribute , bytThisChunk , bytEndOfFile , vbBinaryCompare )

    bytFileName=MidB ( bytThisChunk , lngBeginOfAttribute , lngEndOfAttribute-lngBeginOfAttribute )

    Om UBound ( bytFileName ) <0 eller UBound ( bytValue ) <0 Then
    Err . Höj ERR_INVALID_FILENAME , App. Title , " Ogiltigt filnamn . "
    End If

    Om Me. Target=" " Då
    Err. Raise ERR_INVALID_TARGET , App. Title , " Ogiltig Mål. "
    End If

    'Använd den ursprungliga filnamnet .
    Om Me. FileName=" " Då

    " Trim stigen från filnamnet .
    Medan InStrB (1 , bytFileName , StrConv ( " \ " , vbFromUnicode ) , vbBinaryCompare ) > 0
    bytFileName=MidB ( bytFileName , InStrB (1 , bytFileName , StrConv ( " \ " , vbFromUnicode ) ) + 1 )
    Wend

    " Ställ fastigheten .
    Me. FileName=StrConv ( bytFileName , vbUnicode )

    " Konvertera byte-till Unicode .
    strFileName=Me. Target Me. FileName
    7 .
    Klipp och klistra in den här koden direkt under koden i föregående steg :
    Else
    strFileName=Me. Target Me. FileName
    End If

    'Kontrollera skriva över .
    Om Me. OverWrite Då
    " Detta är den hacka check . Se till att jokertecken inte kan användas .
    Om inte InStr (1 , strFileName , "* " ) Then
    Om FileExists ( strFileName ) Sen
    Kill strFileName
    End If
    Else
    Err . Höj ERR_INVALID_FILENAME , App. Title , "Den angivna filnamnet verkar vara ogiltig . "
    End If Else

    Om FileExists ( strFileName ) Sen
    Err. Raise ERR_FILE_EXISTS , App . Titel , " Filen finns redan . "
    End If
    End If

    lngFileNum=FreeFile

    Öppna strFileName för binär Access skriva som # lngFileNum

    " Skriv filen till målmappen.
    Sätt # lngFileNum , bytValue

    " Detta bit är tom . Därför får en ny bit
    lngBytesLeft=m_objRequest. TotalBytes-. lngChunkSize

    " Starta spaltning maskinen
    göra medan lngBytesLeft > 0

    . " Skaffa en ny bit .
    bytThisChunk=m_objRequest. BinaryRead ( CVar ( lngChunkSize ) )

    lngEndOfValue=InStrB (1 , bytThisChunk , bytEndOfValue , vbBinaryCompare )

    Om lngEndOfValue > 0 Then
    " Posten värde finns i den aktuella bit .
    bytThisChunk=MidB ( bytThisChunk , 1 , lngEndOfValue-1) .
    End If

    " Lägg till bit till filen
    Sätt # lngFileNum , br bytThisChunk
    lngBytesLeft=lngBytesLeft-lngChunkSize

    Om lngBytesLeft lngChunkSize=lngBytesLeft
    End If
    Loop

    Stäng # lngFileNum

    TotalBytes=FileLen ( strFileName )

    " Exit annan göra

    Om ucase ( StrConv ( bytName , vbUnicode ) )=" SaveAs " Då
    Me . Filename=StrConv ( bytValue , vbUnicode )
    Else
    " form annan inriktning än fil, till exempel textrutor
    Om UBound ( bytValue ) > 0 och UBound ( bytName ) > 0 Then
    m_formCol. Add StrConv ( bytName , vbUnicode ) , StrConv ( bytValue , vbUnicode ) Else

    m_formCol. Add StrConv ( bytName , vbUnicode ) , " "
    End If End
    Om
    End If
    8
    Klipp och klistra in den här koden direkt under koden i föregående steg .
    " får nästa bit .
    lngBeginOfChunk=lngEndOfValue

    Om InStrB ( lngBeginOfChunk , bytThisChunk , bytBeginOfName , vbBinaryCompare )=0 Then
    blnEndOfData=True
    End If
    Loop

    Uppladdad=Sant
    Sub
    Avsluta

    UploadErr :

    Om Err. Number=VB_ERR_PATH_NOT_FOUND Då
    Err. Raise ERR_INVAL


Previous:nothing Next:hur man torkar andmat





Relaterade artiklar


  • Hur konvertera det datum som strängen i VB
  • jämförelse av datorspråk
  • hur man använder flera samtal inom Visual Basic
  • Lägga till en post disk med Visual Basic 6
  • hur man rengör PC-hårdvara
  • mjukvaruutveckling samarbetsverktyg
  • java GUI design tutorial
  • spel utforma verktyg
  • hur man konfigurerar en USB-port med Visual Basic
  • hur man lär sig programmering hemma