ASP upload billeder
Hej.. Jeg leger i øjeblikket med at kunne uploade nogen billeder til en mappe på min server..hvis jeg bare vælger at den skal uploade til en bestemt mappe er det intet problem. men jeg vil gerne kunne skrive i mit teksfelt hvilken mappe den skal uploade i.. hvis ikke dette kan lade sig gøre. så en rullemenu hvor den henter alle de oprettet mapper så jeg kan vælge hvilken jeg ønsker at uploade i.. og så et tekst felt hvor jeg kan oprette nye mapper..
Men jeg får en fejlkode.
Microsoft VBScript compilation error '800a03ee'
Expected ')'
/foto/upload.asp, line 13
UPLOAD_PATH = Server.MapPath("Request.Form("mappe")")
--------------------------------------------^
Kode:
<% @EnableSessionState = False %>
<% Option Explicit %>
<% Response.Expires = 0 %>
<%
If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
Dim g_oUpload
Set g_oUpload = get_upload_files()
Dim UPLOAD_PATH
UPLOAD_PATH = Server.MapPath("Request.Form("mappe")")
Dim g_oFso, g_oFolder, g_oFile
Set g_oFso = Server.CreateObject("Scripting.FileSystemObject")
Set g_oFolder = g_oFso.getFolder(UPLOAD_PATH)
Dim fpos, fcontent
fcontent = g_oUpload("upload").Item("content")
Set g_oFile = g_oFso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(g_oUpload("upload").Item("filename")))
For fpos = 1 to LenB(fcontent)
g_oFile.Write chr(AscB(MidB(fcontent, fpos, 1)))
Next
g_oFile.Close: Set g_oFile = Nothing
Response.Redirect Request.ServerVariables("SCRIPT_NAME")
End If
Response.Write "<tr><td></td></tr>"
Response.Write "<tr><td align=""right""><form name=""frmUpload"" method=""post"" enctype=""multipart/form-data"" action=""" & Request.ServerVariables("SCRIPT_NAME") & """>"
Response.Write "<input type=""text"" name=""mappe"">Mappens navn<br>"
Response.Write "<input type=""file"" name=""upload""> <br><input type=""submit"" value=""upload""></td></tr>"
Response.Write "</table></body></html>"
%>
<%
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
%>
