webForumDet fria alternativet

vad för fel å hur ska jag fixa det???

ASP

1 svar · 162 visningar · startad av jwradhe

Medlem sedan juni 2002711 inlägg
Frågan#1

använde det där upload skripet som nämndes för några dar sen och håller på å pilla.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%

Response.Expires=0
Response.Buffer = TRUE
Response.Clear
'Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
byteCount = Request.TotalBytes
'Response.BinaryWrite(Request.BinaryRead(varByteCount))

RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

'Exempel på hur man kan 'plocka ner' andra forumlärelement
'email = UploadRequest.Item("email").Item("Value")

contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("blob").Item("Value")

'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
' Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&filename)
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(filename))

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close
%>
<!--#include file="upload.asp"-->

<% 
Set Connect = Server.CreateOBject("ADODB.connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../db/swedb.mdb")
Set RecSet = Server.CreateOBject("ADODB.Recordset")
SQL = "SELECT * from kurser "
RecSet.Open SQL, Connect, 3, 3

RecSet.Addnew 
RecSet("namn") = Request.Form("namn")
RecSet("adress") = "kurser/&filename"
RecSet("skribent") = Request.Form("skribent")
RecSet("besk") = Request.Form("besk")
RecSet("datum") = now
RecSet("besk") = Request.Form("kat")
RecSet.Update
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>

<%
Response.Redirect "../index.asp?sida=kurser"
%>

och får felmeddelande:

Feltyp:
Request-objekt, ASP 0207 (0x80004005)
Det går inte att använda samlingen Request.Form efter att BinaryRead har anropats.
/sp/kurser/outputfile.asp, line 50

rad 50:

RecSet("namn") = Request.Form("namn")

hur får jag detta å funka nu???

Medlem sedan feb. 200112 078 inlägg
#2

Om man läser hela tråden som behandlar scriptet så står det mycket utförligt exakt hur man gör för att undvika detta problem och kunna hantera request-samlingen efter BinaryRead har använts. ;)

Jag citerar:

jag skrev:

Tillägg 020730: Eftersom det är många som frågar hur man använder request.form i filen outputfile.asp, postar jag denna länk med lösningen.

Det går även att göra såhär: ('value' skall stå kvar)

variabel = UploadRequest.Item("formularnamn").Item("Value")

RED. Varför är jag ens vaken nu? Jag borde sova, goddamnit! ;)

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)