Jag ska ladda upp en fil och spara info till en databas men i själva uploadningen så blir det fel!
Feltyp:
Request-objekt, ASP 0206 (0x80004005)
Det går inte att anropa BinaryRead efter att samlingen Request.Form har använts.
Så den kommer bara till där den anropar funktionen som laddar upp filen och den raden:
request_binaries = Request.BinaryRead(Request.TotalBytes)
Hoppas nån vet hur jag ska skriva!
If Request.QueryString("action") ="laggtill" Then%>
<table border="0">
<tr>
<td>
<b>Lägg till</b>
</td>
</tr>
<tr>
<td>
<img src="bilder/dot2.gif">
</td>
</tr>
<form name="frmUpload" method="post" action="admin.asp?do=inne&action=upload" enctype="multipart/form-data">
<tr>
<td><b>Namn:</b><br><input type="text" name="namn" size="45"></td>
</tr>
<tr>
<td><b>Filen:</b><br><input type="file" name="fil" size="31"></td>
</tr>
<tr>
<td><b>Storlek:</b><br><input type="text" name="storlek" size="45"></td>
</tr>
<tr>
<td><b>Beskrivning:</b><br><textarea name="info" rows="10" cols="60"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Spara"></td>
</tr>
</form>
</table>
<p>
<%End If
If Request.QueryString("action") = "upload" Then
UPLOAD_PATH = Server.MapPath("filer")
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = Fso.getFolder(UPLOAD_PATH)
If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
Session("Namn") = Request.Form("namn")
Session("Storlek") = Request.Form("storlek")
Session("Info") = Request.Form("info")
Set Upload = get_upload_files()
fcontent = Upload("fil").Item("content")
If Fso.FileExists(UPLOAD_PATH & "\" & extract_filename(Upload("fil").Item("filename"))) Then
Response.Redirect "admin.asp?do=inne&action=add&mess=exist"
Else
Set File = Fso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(Upload("fil").Item("filename")))
End If
For i = 1 to LenB(fcontent)
File.Write chr(AscB(MidB(fcontent, i, 1)))
Next
File.Close: Set File = Nothing
Session("Fil") = extract_filename(Upload("fil").Item("filename"))
Response.Redirect "admin.asp?do=inne&action=spara"
End If
Function get_upload_files()
Set upload_object= Server.CreateObject("Scripting.Dictionary")
request_binaries = Request.BinaryRead(Request.TotalBytes)
position_start = 1
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
boundary = MidB(request_binaries, position_start, (position_end - position_start))
boundary_pos = InstrB(1, request_binaries, boundary)
Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))
If Not(Response.IsClientConnected) Then Response.End
position_start = (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
name = get_string(MidB(request_binaries, position_start, (position_end - position_start)))
pos_file = InstrB(boundary_pos, request_binaries, get_byte_string("filename="))
If ((pos_file <> 0) AND (pos_file < InstrB(position_end, request_binaries, boundary))) Then
upload_object.Add name, Server.CreateObject("Scripting.Dictionary")
position_start = (pos_file + 10)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))
position_start = (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))
position_start = (position_end + 4)
position_end = InstrB(position_start, request_binaries, boundary) - 2
upload_object.item(name).Add "size", ((position_end - position_start))
upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))
End If
boundary_pos = InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)
Loop
Set get_upload_files = upload_object
End Function
Function get_byte_string(str)
For cnt = 1 to Len(str)
get_byte_string = get_byte_string & chrB(AscB(Mid(str, cnt, 1)))
Next
End Function
Function get_string(str)
For cnt = 1 to LenB(str)
get_string = get_string & chr(AscB(MidB(str, cnt, 1)))
Next
End Function
Function extract_filename(filename)
extract_filename = Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))
End Function
End If