---
title: "Ladda upp FLERA filer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/75122-ladda-upp-flera-filer"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "kb00obfr"
published: "2003-04-26T14:34:15.000Z"
updated: "2003-04-26T17:19:41.000Z"
replies: 4
views: 216
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/75122-ladda-upp-flera-filer"
---

# Ladda upp FLERA filer

## #1 — kb00obfr, 2003-04-26T14:34Z

Har en kod som funkar utmärkt för att ladda upp enstaka filer med. Nu är det så att jag vill kunna ladda upp flera. Input komponenten av typen file verkar bara klara av en fil? (denna atlså: input type="file")

Vet att det finns massor av trådar om detta, men jag hittar inget där. Tacksam för svar!

Ifall någon vill ha, här är koden.

/Fredrik

```
<% Option Explicit %>
<% Response.Expires = 0 %>
<%
	Dim UPLOAD_PATH
		UPLOAD_PATH	= Server.MapPath("filer")

	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 "<link href=""style.css"" rel=""stylesheet"" type=""text/css"">"
	Response.Write "<font face=verdana size=2><div align=""center"">LADDA UPP FILER</div></font>"
	Response.Write "<tr><td><hr size=""1"" color=""#000000""></td></tr>"
	For Each g_oFile In g_oFolder.Files
		Response.Write "<tr><td><font face=verdana size=1><a href=""filer/" & g_oFile.Name & """>" & g_oFile.name & "</a></font></td></tr>"
	Next
	Response.Write "<tr><td><hr size=""1"" color=""#000000""></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=""file"" name=""upload"" style=""Border: 1px solid; font-family: verdana; font-size: 10px""> &nbsp; <input type=""submit"" value=""Ladda upp"" style=""border: #000000 1px solid; font-family: verdana; font-size: 10px""></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
%>
```

Permalänk: https://www.webforum.nu/p/75122

## #2 — crisse6, 2003-04-26T14:58Z

kan du inte gora en For Each loop??????

Permalänk: https://www.webforum.nu/p/1025474

## #3 — kb00obfr, 2003-04-26T15:12Z

(vi kan ta det här :-)

Problemet är att jag inte vet var jag ska lägga loppen, om inte jag kan välja mer än en fil i taget kommer det ju ta år att ladda upp många filer... och det känns som det ligger i input file delen... eller?

Permalänk: https://www.webforum.nu/p/1025485

## #4 — crisse6, 2003-04-26T17:16Z

men sag att du har 5 input file falt... sen lagger du For Each loopen dar sjalva uppladdningen sker, liksom vilka falt som innhellar nagot ska laddas upp.... detta ar ratt komplicerat som du vill gora.... men du kan forsoka.... testa ;)

Permalänk: https://www.webforum.nu/p/1025573

## #5 — crisse6, 2003-04-26T17:19Z

emission svarade pa sant problem, har inte kollat riktigt vad hans kod sa.... men han borjade med "No problem" och sen ar det ju emission vi snackar om ;)
<http://www.webforum.nu/showthread.php?s=&threadid=6531&highlight=ladda+AND+upp+AND+flera>

Permalänk: https://www.webforum.nu/p/1025574

---

Tråden på webben: https://www.webforum.nu/amne/asp/75122-ladda-upp-flera-filer
