Avatar billede donslund Nybegynder
01. december 2002 - 11:41 Der er 21 kommentarer og
1 løsning

Cannot use Request.Form

Request object error 'ASP 0207 : 80004005'
Cannot use Request.Form
/admin/uploadgfx.asp, line 69
Cannot use Request.Form collection after calling BinaryRead

Hvordan omgår jeg denne fejl?
Avatar billede donslund Nybegynder
01. december 2002 - 11:58 #1
Problemet er, at jeg bruger ENCTYPE="multipart/form-data" Men hvordan får jeg så variablerne ud af formen, så jeg kan indsætte filnavnet i en DB?
Avatar billede Slettet bruger
01. december 2002 - 12:06 #2
Det ser ud til at du bruger en komponent til at uploade data med. Kan du ikke hive Form data ud med denne? Det kan man eksempelvis med ASPUpload. Her findes en Collection med netop Form data:

For Each objForm In objUpload.Form

Next

Her kan du så hente værdierne ud vha. objForm.Value.
Avatar billede donslund Nybegynder
01. december 2002 - 12:11 #3
Jeg bruger ikke en komponent.

Her er det der skulle gøre arbejdet:

<%
    Else
        Dim intFileUpload, strContentType, strFilename, intFileTotalBytes

        intFileUpload = FileUpload("../cgi-bin/upload/", 20000, Array("image/gif", "image/jpeg", "image/pjpeg"), Array("gif", "jpg"), strContentType, strFilename, intFileTotalBytes)

        If intFileUpload = 0 Then
            Response.Write "Filen " & strFilename & " blev uploaded.<BR>"
            Response.Write "Det er en fil af typen " & strContentType & " og den fylder " & intFileTotalBytes & " bytes:<BR>"
            Response.Write "<IMG SRC=""../cgi-bin/upload/" & strFilename & """><BR>"
                        ' SQL forespørgsel
                        strSQL = "Update medlemmer set billede = '" & request.form("fileupload") & "' where brugernavn = '" & request.form("uploadtil") & "'"
                        ' Udfør forespørgsel (rs indeholder nu resultatet)
                        Set rs = Conn.Execute(strSQL)

        Else 
            Response.Write "Der opstod en fejl under upload!<BR>"
            Response.Write "Fejl nr: " & intFileUpload & "<BR>"
            Response.Write "Filnavn: " & strFilename & "<BR>"
            Response.Write "Filtype: " & strContentType & "<BR>"
            Response.Write "Filstørrelse: " & intFileTotalBytes & "<BR>"
        End If
    End If

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

%>

Og det er i min SQL-sætning det går galt.
Avatar billede donslund Nybegynder
01. december 2002 - 12:14 #4
Der er naturligvis meget mere kode, men det må være i det viste jeg skal trække mine variabler ud.
Avatar billede Slettet bruger
01. december 2002 - 12:20 #5
Problemet består vel i at du anvender Request.Form efter metoden FileUpload har anvendt Response.BinaryWrite. Nu ved jeg så ikke hvorfor BinaryWrite anvendes på siden, men det ser da ud til at kunne undgås, da du bruger <img> til at vise et billede med.
Avatar billede donslund Nybegynder
01. december 2002 - 12:34 #6
ja, men hvordan undgår jeg at den konflikter. Hvordan får jeg smidt filnavnet ind i min DB på det rigtige sted?
Avatar billede Slettet bruger
01. december 2002 - 12:38 #7
Du kan selvfølgelig vende det hele om, så du tilgår databasen som det første, men det vil være en ulempe hvis din upload-funktion fejler.
Avatar billede donslund Nybegynder
01. december 2002 - 13:09 #8
det må kunne lade sig gøre på en anden måde.
Avatar billede burningice Nybegynder
01. december 2002 - 13:34 #9
brug request.form i starten og tildel det til nogle lokale variabler

brug derefter binarywrite, og til sidst eksekverer du din sql med de lokale variabler istedet for request.form
Avatar billede donslund Nybegynder
02. december 2002 - 10:54 #10
Okay. Det tester jeg lige når jeg kommer hjem ... på torsdag :-)
Avatar billede donslund Nybegynder
08. december 2002 - 11:50 #11
Hej Cyberfessor.

Jeg er helt på spanden. Jeg har forsøgt, at tildele min request.form til en lokalvariabel i toppen men det virker stadigvæk ikke.
Har du ikke lyst til at se m in kode?

MVH

Jeppe
Avatar billede burningice Nybegynder
08. december 2002 - 14:06 #12
tjoo.. det kan jeg da godt.. men jeg tror ærlig talt du skal lave din kode om, så du ikker bruger request.form og binaryread/write på samme side... jeg har selv lavet en side engang hvor man kunne uploade et billede, og data'erne om billedet blev så gemt i en db... koden så såden her ud:

    Dim mySmartUpload, SImage, intCount
   
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
    Set SImage = Server.CreateObject("SImageUtil.Image")
    mySmartUpload.Upload
    intCount = 0
    For each file In mySmartUpload.Files
        If not file.IsMissing Then
            file.SaveAs(Server.MapPath(file.FileName))
            Conn.Execute("INSERT INTO [image] ([size], [filename], [Ext], [ContentType], [ContentDisp], [TypeMIME], [SubTypeMIME]) VALUES ('"& file.Size &"', '"& file.FileName &"', '"& file.FileExt &"', '"& file.ContentType &"', '"& file.ContentDisp &"', '"& file.TypeMIME &"', '"& file.SubTypeMIME &"')")
            SImage.Thumb file.FileName, 100, 100,  "thumb/"& file.FileName, 75
            Response.Write("FileName = " & file.FileName & "<BR>")
            intCount = intCount + 1
        End If
    Next
Avatar billede donslund Nybegynder
08. december 2002 - 14:17 #13
Ved du hvad. Den leger jeg lidt med. Der er ikke nær så meget kode som i den jeg sidder med. Det her ser meget mere overskueligt ud.
Avatar billede burningice Nybegynder
08. december 2002 - 14:27 #14
nu ved jeg selvfølgelig ikke hvilken information du vil have fat i med request.form men ved hjælp af aspsmartupload kan man få fat i en heel dil info om den uploadede fil uden at gøre brug af request.form
Avatar billede donslund Nybegynder
08. december 2002 - 14:34 #15
Jeg vil fra en form finde filnavn og Bruger, så db'en indeholder et filnavn på den rigtige bruger. Det er får at lave bruger-upload af et billede i en profil Hvis du forstår :-)
Avatar billede burningice Nybegynder
08. december 2002 - 14:42 #16
jeg forstår... men hvis det er bygget op som et forum hvor man skal være logget ind for at uploade, så kan du jo udnytte det, og automatisk vedhæfte brugernavnet på den bruger der er logget ind på den givne fil, i stedet for at brugeren skal skrive sit navn ind når han skal uploade.
Avatar billede donslund Nybegynder
08. december 2002 - 14:54 #17
Der er to steder hvor det skal kunne lade sig gøre. Både med password men også fra en speciel admin-side hvor den bruger der skla uploades til jo ikke selv er logget ind.
Avatar billede donslund Nybegynder
23. december 2002 - 14:26 #18
Men dit er jo bygget på en komponent, SmartUpload.
Det kan ikke lade sig gøre i mit tilføælde, da der ikke er en komponent installeret.
Avatar billede burningice Nybegynder
23. december 2002 - 17:11 #19
jeg kan desværre ikke rigtig hjælpe dig... en sidste ting du dog kunne lave, det var at strikke to forms sammen på din side der poster til hver sin side. På den ene form har du billedet, og på den anden form brugerinfoen. Ved hjælp af javascript kan du så submitte dem begge to på samme tid

Function PostForms() {
document.form1.submit();
document.form2.submit();
document.location.href='done.asp';
}

<form name="form1" id="form1" method="post" action="billedeupload.asp">
</form>
<form name="form2" id="form2" method="post" action="infoupload.asp">
</form>

<a href="#" onClick="PostForms()">Upload billede</a>
Avatar billede donslund Nybegynder
23. december 2002 - 17:26 #20
Okay, du skal have mange tak for alt dit besvær og rigtig glædelig jul.
Avatar billede donslund Nybegynder
29. maj 2003 - 10:31 #21
smid lige et svar.
Avatar billede burningice Nybegynder
29. maj 2003 - 11:07 #22
svar :)
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