Avatar billede dtm Nybegynder
24. januar 2004 - 18:37 Der er 2 kommentarer og
1 løsning

Upload af billede + tilføj i database

Jeg prøver lige igen, da jeg ikke kan få det til at virke....

Jeg har en Upload funktion, til at uploade billeder med....
Men med det modul, kan jeg ikke tilføje fil-navnet til et felt i en database, hvordan får jeg lige det lavet???

Dette er hvad jeg bruger:

<%@ LANGUAGE="VBScript" %>
<%
Option Explicit
Response.Expires = -1
Response.Buffer = True
Response.Clear

Dim cdpBinaryData,cdpBoundary,cdpBoundPosition,cdpCharacter,cdpContentType,cdpCount,cdpDicUploadControl,cdpDicUploadRequest,cdpEndPosition,cdpFile,cdpFileName,cdpFilePath,cdpFilePosition,cdpFileSize,cdpFSO,cdpI,cdpName,cdpPosition,cdpPositionBoundary,cdpStartPosition,cdpTotalBytes,cdpValue

cdpTotalBytes = Request.TotalBytes
cdpBinaryData = Request.BinaryRead(cdpTotalBytes)
Set cdpDicUploadRequest = CreateObject("Scripting.Dictionary")
cdpUploadRoutine cdpBinaryData
cdpContentType = cdpDicUploadRequest("theFile")("cdpContentType")
cdpFilePath = cdpDicUploadRequest("theFile")("cdpFileName")
cdpFileName = Right(cdpFilePath,Len(cdpFilePath)-InstrRev(cdpFilePath,"\"))

If Not cdpFileName = "" Then
    cdpValue = cdpDicUploadRequest("theFile")("cdpValue")
    Set cdpFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set cdpFile = cdpFSO.CreateTextFile(Server.mappath("../img/big/" & cdpFileName))
   
    For cdpI = 1 To LenB(cdpValue)
        cdpFile.Write Chr(AscB(MidB(cdpValue,cdpI,1)))
    Next
   
    cdpFile.Close
    Set cdpFile = Nothing
   
    Sub cdpUploadRoutine(cdpBinaryData)
        cdpStartPosition = 1
        cdpEndPosition = InstrB(cdpStartPosition,cdpBinaryData,getByteString(Chr(13)))
        cdpBoundary = MidB(cdpBinaryData,cdpStartPosition,cdpEndPosition-cdpStartPosition)
        cdpPositionBoundary = InstrB(1,cdpBinaryData,cdpBoundary)
       
        Do until (cdpPositionBoundary=InstrB(cdpBinaryData,cdpBoundary & getByteString("--")))
            Set cdpDicUploadControl = CreateObject("Scripting.Dictionary")
            cdpPosition = InstrB(cdpPositionBoundary,cdpBinaryData,getByteString("Content-Disposition"))
            cdpPosition = InstrB(cdpPosition,cdpBinaryData,getByteString("name="))
            cdpStartPosition = cdpPosition + 6
            cdpEndPosition = InstrB(cdpStartPosition,cdpBinaryData,getByteString(Chr(34)))
            cdpName = getString(MidB(cdpBinaryData,cdpStartPosition,cdpEndPosition-cdpStartPosition))
            cdpFilePosition = InstrB(cdpPositionBoundary,cdpBinaryData,getByteString("filename="))
            cdpBoundPosition = InstrB(cdpEndPosition,cdpBinaryData,cdpBoundary)
           
            If  cdpFilePosition <> 0 And (cdpFilePosition<cdpBoundPosition) Then
                cdpStartPosition = cdpFilePosition + 10
                cdpEndPosition =  InstrB(cdpStartPosition,cdpBinaryData,getByteString(Chr(34)))
                cdpFileName = getString(MidB(cdpBinaryData,cdpStartPosition,cdpEndPosition-cdpStartPosition))
                cdpDicUploadControl.Add "cdpFileName", cdpFileName
                cdpPosition = InstrB(cdpEndPosition,cdpBinaryData,getByteString("Content-Type:"))
                cdpStartPosition = cdpPosition + 14
                cdpEndPosition = InstrB(cdpStartPosition,cdpBinaryData,getByteString(Chr(13)))
                cdpContentType = getString(MidB(cdpBinaryData,cdpStartPosition,cdpEndPosition-cdpStartPosition))
                cdpDicUploadControl.Add "cdpContentType",cdpContentType
                cdpStartPosition = cdpEndPosition + 4
                cdpEndPosition = InstrB(cdpStartPosition,cdpBinaryData,cdpBoundary) - 2
                cdpValue = MidB(cdpBinaryData,cdpStartPosition,cdpEndPosition-cdpStartPosition)
            Else
                cdpPosition = InstrB(cdpPosition,cdpBinaryData,getByteString(Chr(13)))
                cdpStartPosition = cdpPosition + 4
                cdpEndPosition = InstrB(cdpStartPosition,cdpBinaryData,cdpBoundary) - 2
                cdpValue = getString(MidB(cdpBinaryData,cdpStartPosition,cdpEndPosition-cdpStartPosition))
            End If
           
            cdpDicUploadControl.Add "cdpValue" , cdpValue   
            cdpDicUploadRequest.Add cdpName, cdpDicUploadControl   
            cdpPositionBoundary=InstrB(cdpPositionBoundary+LenB(cdpBoundary),cdpBinaryData,cdpBoundary)
        Loop
    End Sub
   
    Function getByteString(StringStr)
        For cdpI = 1 To Len(StringStr)
            cdpCharacter = Mid(StringStr,cdpI,1)
            getByteString = getByteString & chrB(AscB(cdpCharacter))
        Next
    End Function
   
    Function getString(cdpBinaryString)
        getString = ""
       
        For cdpCount = 1 To LenB(cdpBinaryString)
            getString = getString & Chr(AscB(MidB(cdpBinaryString,cdpCount,1)))
        Next
    End Function
   
    cdpFileSize = cdpTotalBytes / 1024
    cdpFileSize = Round(cdpFileSize, 2)
    Response.Write("<title>The file " & cdpFileName & " was successfully uploaded! - Size: " & cdpFileSize & "</title>")
    Response.Write(cdpFileName & " Uploaded successfully! Size: " & cdpFileSize & " kb.<br />")
    Response.Write("<center><a href='malerier.asp'>Afslut</a></center>")
End If
%>
Avatar billede r*nger Nybegynder
24. januar 2004 - 18:59 #1
Du kan vel bruge cdpFileName i din database?

Jeg er ikke sikker på at jeg forstår spørgsmålet..
Avatar billede dtm Nybegynder
24. januar 2004 - 19:08 #2
Nu når jeg bruger det modul.... så uploader jeg jo en billed-fil til en mappe, på min hjemmeside.... Men samtidig vil jeg gerne smide fil-navnet i et felt, i en database....
Avatar billede dtm Nybegynder
24. januar 2004 - 19:46 #3
Jeg har selv løst det....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester