webForumDet fria alternativet

ladda upp fil utan objekt

ASP

2 svar · 191 visningar · startad av perra

Medlem sedan mars 20018 inlägg
Frågan#1

Tja får följande felmeddelande:
Feltyp:
Request-objekt, ASP 0207 (0x80004005)
Det går inte att använda samlingen Request.Form efter att BinaryRead har anropats.
/svp97/galleri/outputFile.asp, line 48

outputFile.asp ser ut som följer:

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

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)
 
 For i = 1 to LenB(value)
	 MyFile.Write chr(AscB(MidB(value,i,1)))
 Next
 
 MyFile.Close
 
 filePath = Server.MapPath("../svp97.mdb")
	
 Set Connection = Server.CreateObject("ADODB.Connection")
 Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
 Set RecSet = Server.CreateObject("ADODB.Recordset") 

 Laggtill = "SELECT * FROM tblGalleri"
 RecSet.Open Laggtill, Connection, adOpenStatic, adLockOptimistic

 RecSet.AddNew
 RecSet("fltBildfil") 		= 	filename
 RecSet("fltKommentar") 	= 	Request.Form("comment")   <-- Här blir det fel!!!!
 RecSet("fltWidth") 		= 	Request.Form("width")
 RecSet("fltHeight") 		=	Request.Form("height")
 RecSet("fltDatum")		=	dateadd("h", 6, now())	
 RecSet("fltInskickadav") 	= 	Session("UserID")

 RecSet.Update
 RecSet.Close
 Connection.Close	

 Response.Redirect "..\galleri.asp"

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

mitt formulär som fylls i är av typen

<FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="outputFile.asp">
<INPUT TYPE="file" NAME="blob" STYLE="width: 250px;">
<INPUT TYPE="text" NAME="width">
</FORM>

Det verkar alltså som jag inte kan komma åt request.form("width") för att det krockar med filen jag skickar in!?

Har jag fel formulär typ?

Är det nån som förstår?

hjälp!

[Redigerat av perra den 21 mar 2001]

[Redigerat av perra den 21 mar 2001]

Medlem sedan feb. 200144 inlägg
#2

Det fungerar bättre om du ändrar raderna:

RecSet("fltKommentar") = Request.Form("comment")

till:

RecSet("fltKommentar") = UploadRequest.Item("comment").Item("Value")

Medlem sedan mars 20018 inlägg
#3

Tackar hakangus!

Ännu en gång har man fått bekräftelse på att ens kunnande är minimalt :)

Set UploadRequest = CreateObject("Scripting.Dictionary")

Men vad är Dictionary som tydligen skapas i filen?! Måste man göra så för att komma åt filen? Finns det nåra direkta fördelar med det ?

många frågor ..

-perra

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)