fejl i upload uden komponenter
Jeg har tidligere haft dette spørgsmål oppe og vende på exp.dk men fik det ikke løst!Jeg vil gerne uploade et billede, samtidigt med at jeg skriver til en access database.
Jeg får dog denne fejl, er der nogen der kan fortælle mig hvad jeg gør galt?
Fejltype:
Request-objekt, ASP 0207 (0x80004005)
Request.Form-samling kan ikke bruges, når BinaryRead er kaldt.
line 99 = strmd = request.form("y_tekst")
her er min kode:
<%
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
response.buffer = true
Response.Clear
aid= request.QueryString("id")
key = request.querystring("key")
If key = 1 then
byteCount = Request.TotalBytes
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")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("../gfx/nyhed/"&filename))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
Sub BuildUploadRequest(RequestBin)
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
If PosFile<>0 AND (PosFile<PosBound) Then
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value
UploadRequest.Add name, UploadControl
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Sub
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
End if
%>
<html>
<head>
<title></title>
<script language="JavaScript">
function SetCookie (name, value) {var argv = SetCookie.arguments;var argc = SetCookie.arguments.length;var expires = (argc > 2) ? argv[2] : null;var path = (argc > 3) ? argv[3] : null;var domain = (argc > 4) ? argv[4] : null;var secure = (argc > 5) ? argv[5] : false;document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "")}
function set_name(form) {var expdate = new Date ();expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
var tekst = form3.y_tekst.value;SetCookie ("tekst", tekst, expdate)
}
</script>
</head>
<body bgcolor="#FFFFFF" leftmargin=0 topmargin=0 marginheight=0 marginwidth=0>
<!--#include file="../conn/nyhed.asp"-->
<%
if key = 1 then
strmd = request.form("y_tekst")
'indsæt i db
'SQL sætning opbygges
Dim strSQL
strSQL = "Insert into nyheder ("
strSQL = strSQL & "billedelink, "
strSQL = strSQL & "strmd, "
strSQL = strSQL & "strdato)"
strSQL = strSQL & "values( "
strSQL = strSQL & "'nyhed/" & filename & "', "
strSQL = strSQL & "'" & strmd & "', "
strSQL = strSQL & "#" & Date() & "#)"
Conn.Execute(strSQL)
'response.Write(strSQL)
Response.Clear
Response.Redirect "../nyhed.asp"
end if
%>
<form METHOD="Post" ENCTYPE="multipart/form-data" ACTION="upload_nyhed.asp?key=1" id="form3" name="form3" onSubmit="return set_name(this.form);">
<select name="y_tekst">
<option value="Januar">Januar</option>
<option value="Februar">Februar</option>
<option value="Marts">Marts</option>
<option value="April">April</option>
<option value="Maj">Maj</option>
<option value="Juni">Juni</option>
<option value="Juli">Juli</option>
<option value="August">August</option>
<option value="September">September</option>
<option value="Oktober">Oktober</option>
<option value="November">November</option>
<option value="December">December</option>
</select>
<br>
<input TYPE="file" NAME="blob" class="input">
<input TYPE="submit" value="UDFØR" NAME="Enter">
</form>
</BODY>
</HTML>
