<% Response.Expires = 0 %> <% If Request("action") = "upload" Then Dim objfile Set objfile = get_upload_files() Dim plac, strfile, content content = objfile("upload").Item("content") Set strfile = files.CreateTextFile(folder2 & "\" & extract_filename(objfile("upload").Item("filename"))) For plac = 1 to LenB(content) strfile.Write chr(AscB(MidB(content, plac, 1))) Next strfile.Close Set strfile = Nothing Response.Redirect Request.ServerVariables("HTTP_REFERER") END IF %> <% Function get_upload_files() Dim upload_object, request_binaries Dim position_start, position_end Dim boundary, boundary_pos 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 Dim name, pos_file 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) Dim cnt 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) Dim cnt 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 %> <%If Request.QueryString("action") = "delete" Then files.DeleteFile(Request.QueryString("name")) Response.Redirect Request.ServerVariables("HTTP_REFERER") end if %>