/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Request.form efter binaryread
Fra : M@rk


Dato : 20-02-03 15:02

Hej alle,

Fra tråden "Upload af billeder uden brug af komponenter"
(Message-ID: <3d050951$0$57496$edfadb0f@dspool01.news.tele.dk>) har jeg
hentet:

http://activedeveloper.dk/download/default.asp?mode=showdownload&id=79

og det fungerer ganske fint og dejligt

Dog har jeg det lille problem, at jeg gerne vil opdatere min
persondatabase med filnavnet fra det billede man uploader - dette
naturligvis for, at man kan se et billede af personen, når man viser
recordens indhold i en formular.

Problemet er imidlertid, at når jeg prøver at lave en sql-update i samme
asp-fil som uploader billedet, så får jeg en fejl der siger, at jeg ikke
må lave request.form efter binaryread ......... og så er jeg gået kold


Hvordan i alverden skal jeg så få fortalt min persondatabase, at der nu
ligger et billede af personen?


Alle hints er mere end velkomne


/Mark

PS
Skulle stumper fra den eksisterende kode være ønsket, så sender jeg
gerne dette .........

--
M@rk, the unknown @ vosborg.dk - ICQ #6564215

"When the rythm-section ain't making it
- go for it your self" ~ Ben Webster

 
 
Jens Gyldenkærne Cla~ (20-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-02-03 15:08

M@rk skrev:

> Problemet er imidlertid, at når jeg prøver at lave en
> sql-update i samme asp-fil som uploader billedet, så får jeg
> en fejl der siger, at jeg ikke må lave request.form efter
> binaryread ......... og så er jeg gået kold


Det er et skud i tågen - men har du prøvet at lave Request.Form
_før_ du bruger binaryread?
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

M@rk (20-02-2003)
Kommentar
Fra : M@rk


Dato : 20-02-03 15:20

Thu, 20 Feb 2003 15:07:56 +0100, berigede Jens Gyldenkærne Clausen
<jens@gyros.invalid> dk.edb.internet.webdesign.serverside.asp med:

>Det er et skud i tågen - men har du prøvet at lave Request.Form
>_før_ du bruger binaryread?

Yeps, det var også min første indskydelse (og det burde jeg måske også
have skrevet, beklager) - desværre så ændrer fejlbeskeden sig til en
total griner noget i stil med, at man ikke må lave request.form før
binaryread )

"De" kunne med andre ord have sparet én fejlmeddelelse og blot fortalt,
at man ikke må lave request.form når man også laver binaryread


/Mark

--
M@rk, the unknown @ vosborg.dk - ICQ #6564215

"When the rythm-section ain't making it
- go for it your self" ~ Ben Webster

Hintzmann (21-02-2003)
Kommentar
Fra : Hintzmann


Dato : 21-02-03 10:29

"M@rk" <unknown@vosborg.invalid> skrev i en meddelelse
news:B95UPkwhge5Yg+cKxSDbsNbg9Trk@4ax.com...
> Hej alle,
>
> Problemet er imidlertid, at når jeg prøver at lave en sql-update i samme
> asp-fil som uploader billedet, så får jeg en fejl der siger, at jeg ikke
> må lave request.form efter binaryread ......... og så er jeg gået kold
>
>
> Hvordan i alverden skal jeg så få fortalt min persondatabase, at der nu
> ligger et billede af personen?
>

Hej Mark

Jeg forstår heller ikke helt hvorfor man ikke må request'e på form,
querystring m.fl. efter at man har lavet en Request.BinaryRead.
Men sådan er det

Men du kan alligevel få fat i det data som er postet
Den metode jeg kender er dog lidt tricky, og hvis der er nogen som har et
alternativ vil jeg meget gerne høre det.

Du tager en request.binaryread på request.totalbytes, så har du det der
blevet postet som binær data.
Dim a,b
a=Request.TotalBytes
b=Request.BinaryRead(a)

Herefter konvertere du det binære data til en string på følgende måde.
Dim strRequest
strRequest = binary2str(b)

Function binary2str(Binary)
Dim I, S
For I = 1 To LenB(Binary)
S = S & Chr(AscB(MidB(Binary, I, 1)))
Next
binary2str = s
End Function

Så har du det der blevet postet i variablen strRequest. Det er det samme som
hvis du normalt skriver request.form.

Variablen strRequest splitter du ved hvert &-tegn for at få adskilt
parameterne.
Dim arrRequest
arrRequest = split(strRequest, "&")

Du kan så lave en løkke og løbe array'et igennem. Her skal du så splitte på
=-tegnet, så du får parameterets navn og værdi.

Dim Field, FieldName, FieldContents
For Each Field In arrRequest
Field = split(Field, "=")
FieldName = Field(0)
FieldContents = Field(1)
response.write "<p>"&FieldName&" = "&FieldContents&"</p>"
next

Du skal så være opmærksom på at du får værdierne URL-encoded.
Der findes ikke i ASP en URLdecode funktion, men du kan lave din egen på
følgende måde:

Function URLDecode(What)
Pos = InStr(1, What, "%")
Do While Pos>0
What = Left(What, Pos-1) + _
Chr(Clng("&H" & Mid(What, Pos+1, 2))) + _
Mid(What, Pos+3)
Pos = InStr(Pos+1, What, "%")
Loop
URLDecode = What
End function

NB. Denne metode er lidt langsom. Som alternativ kan du benytte JSscripts
unescape funktion eller bruge ADODB.Stream.


Det vil sige at du bare skal køre URLDecode på FieldName og FieldContent
således.
FieldName = URLDecode(Field(0))
FieldContents = URLDecode(Field(1))


Hvis du så skal finde et bestemt parameter (filnavnet), så skal du lave en
løkke der løber dit array igennem og lede efter det.

Jeg håber at du kan bruge det

Hintzmann








Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste