Her er en upload der ikke behøver nogen komponenter, men så vidt jeg har
hørt skulle den kun kunne tage en fil ad gangen.
Den virker fint for mig og jeg kører PWS på Win 98 og har ikke installeret
nogle komponenter
<% @EnableSessionState = False %>
<% Option Explicit %>
<% Response.Expires = 0 %>
<%
server.scripttimeout=999999
Dim UPLOAD_PATH
UPLOAD_PATH = Server.MapPath("files")
Dim g_oFso, g_oFolder, g_oFile
Set g_oFso = Server.CreateObject("Scripting.FileSystemObject")
Set g_oFolder = g_oFso.getFolder(UPLOAD_PATH)
If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
Dim g_oUpload
Set g_oUpload = get_upload_files()
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 "<html><body><table>"
Response.Write "<tr><td><hr></td></tr>"
For Each g_oFile In g_oFolder.Files
Response.Write "<tr><td><a href=""files/" & g_oFile.Name & """>" &
g_oFile.name & "</a></td></tr>"
Next
Response.Write "<tr><td><hr></td></tr>"
Response.Write "<tr><td align=""right""><form name=""frmUpload""
method=""post"" enctype=""multipart/form-data"" action=""" &
Request.ServerVariables("SCRIPT_NAME") & """
onsubmit=""document.all['load'].style.visibility='visible'"">"
Response.Write "<input type=""file"" name=""upload""> <input
type=""submit"" value=""upload""></td></tr>"
Response.Write "</table><center><span id=""load"" style=""visibility:
hidden; font-size: 50;"">Loader...<br>Vent
venligst.</span></center></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
%>
"René Kømler" <rek@brs.dk> skrev i en meddelelse
news:40f3822d$0$23869$14726298@news.sunsite.dk...
> Hej,
>
> Jeg afvikler vores intranet på en IIS (på en w2k server) og kører
> flad .html - og .asp op mod en access database.
>
> Jeg mangler en god komponent til upload af filer (.doc, .xls,
> jpg, .gif), således at mine brugere selv kan "smide" de
> nødvendige dokumenter op via deres browser (IE).
>
> Jeg har været en del rundt og kigge på nettet - men det er endnu
> ikke lykkedes mig at få lagt en komponent ind på serveren.
>
> Jeg søger derfor efter en god uplad komponent incl. en "manual"
> for hvorledes den installeres på serveren, samt de(t) nødvendige
> script der skal bruges af mine brugere for at lægge dokumenter
> op.
>
> Jeg er villig til evt. at investere i en komponent - men hvis der
> findes noget freeware ville det være sjovere.
>
> Bedste Hilsner
> René
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! =>
http://www.html.dk/tutorials