Avatar billede slapstick Nybegynder
16. september 2002 - 13:25 Der er 1 løsning

upload uden komponent

jeg skal up0loade billeder uden komponent
og jeg bruger et script der hedder fileuploader
problemet er at den ikke uploader noget
har brugt den et andet sted hvor den virker fint
koden kommer her:

<%@ Language="VBSCRIPT" %>
<% Response.buffer = True %>
<!--#include file="../include/dbconn.inc"-->
<!--#include file="../include/protect.inc"-->
<!--#include file="upload.asp"-->
<%
Dim Uploader, File
Dim alder, quizz, drev_sti, oFS, GetQuizId
alder = Request.Querystring("age")
%>
<%
'checke om mappe er lavet osv
If Request.querystring("age") = 1 Then
quizz = "quiz1"
Else
quizz = "quiz2"
End If
GetQuizId = "SELECT id FROM " & quizz & " WHERE aktiv = True"
set rsquiz = Conn.Execute(GetQuizId)
Set oFS = Server.CreateObject("Scripting.FileSystemObject")
if not oFS.FolderExists("" & Server.Mappath("billeder\" & quizz & "-" & rsquiz("id") & "") & "") Then
'oFS.CreateFolder "" & drev_sti & "\" & quizz & "-" & rsquiz("id") & ""
oFS.CreateFolder Server.Mappath("billeder\" & quizz & "-" & rsquiz("id") & "")
end if

'upload lort
drev_sti = Server.Mappath("billeder\" & quizz & "-" & rsquiz("id") & "\")
Set Uploader = New FileUploader
' Check if any files were uploaded
If Uploader.Files.Count = 0 Then
    Response.Write "File(s) not uploaded."
Else
    ' Loop through the uploaded files
    For Each File In Uploader.Files.Items
       
        ' Check where the user wants to save the file
            ' Save the file
            File.SaveToDisk drev_sti   
Next

End If
%>
<br><%=drev_sti %>

her kommer indholdet af upload.asp som er included:

<%
'***************************************
' File:      Upload.asp
' Author: Jacob "Beezle" Gilley
' Email:  avis7@airmail.net
' Date:  12/07/2000
' Comments: The code for the Upload, CByteString,
'            CWideString    subroutines was originally
'            written by Philippe Collignon...or so
'            he claims. Also, I am not responsible
'            for any ill effects this script may
'            cause and provide this script "AS IS".
'            Enjoy!
'****************************************

Class FileUploader
    Public  Files
    Private mcolFormElem

    Private Sub Class_Initialize()
        Set Files = Server.CreateObject("Scripting.Dictionary")
        Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
    End Sub
   
    Private Sub Class_Terminate()
        If IsObject(Files) Then
            Files.RemoveAll()
            Set Files = Nothing
        End If
        If IsObject(mcolFormElem) Then
            mcolFormElem.RemoveAll()
            Set mcolFormElem = Nothing
        End If
    End Sub

    Public Property Get Form(sIndex)
        Form = ""
        If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
    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)
               
                If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
            Else
                nPos = InstrB(nPos, biData, CByteString(Chr(13)))
                nPosBegin = nPos + 4
                nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
                If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
            End If

            nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
        Loop
    End Sub

    'String to byte string conversion
    Private Function CByteString(sString)
        Dim nIndex
        For nIndex = 1 to Len(sString)
          CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
        Next
    End Function

    'Byte string to string conversion
    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
   
    Public Sub SaveToDatabase(ByRef oField)
        If LenB(FileData) = 0 Then Exit Sub
       
        If IsObject(oField) Then
            oField.AppendChunk FileData
        End If
    End Sub

End Class
%>

her kommer den asp side hvor jeg har fået det til at virke fint, i det her eksempel smider jeg også noget data ind i en base men det har ikke noget at sige så vidt jeg ved

<%@ Language=VBScript %>
<%
Dim Conn
%>
<!--#include file="include/dbconn.inc"-->
<!-- #include file="upload.asp" -->
<%
Dim Uploader, File
Set Uploader = New FileUploader
Uploader.Upload()
' Check if any files were uploaded
If Uploader.Files.Count = 0 Then
    Response.Write "File(s) not uploaded."
Else

    For Each File In Uploader.Files.Items
       

            prodid = Uploader.Form("prodid")
            prod = Uploader.Form("produkttype")
            filnavn = File.FileName
            File.SaveToDisk Server.MapPath ("produkter\")
            addpic = "UPDATE produkter SET billede = '" & filnavn & "' WHERE produktid = " & prodid & ""
            Conn.Execute(addpic)
%>
Avatar billede slapstick Nybegynder
16. september 2002 - 13:51 #1
nevermind jeg lurede den
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