---
title: "Ogiltigt proceduranrop eller argument.: 'Mid'"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12826-ogiltigt-proceduranrop-eller-argument-mid/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "mikul"
published: "2001-11-24T21:31:00.000Z"
updated: "2001-11-26T00:33:00.000Z"
replies: 28
views: 1326
page: 2
pages: 2
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/12826-ogiltigt-proceduranrop-eller-argument-mid"
---

# Ogiltigt proceduranrop eller argument.: 'Mid'

_Sida 2 av 2._

## #21 — LarsG, 2001-11-24T22:48Z

Du kan ju titta på mitt första inlägg där jag gjorde lite ändringar i funktionen.

Annars så kan du ju lägga in lite test-utskrifter så att du kan se värdet på inparametrar och de lokala variablerna.

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

## #22 — mikul, 2001-11-24T22:57Z

Nu fick jag värdet "FILE1"
det är så formuläret heter....

/ Mikul

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

## #23 — LarsG, 2001-11-24T23:04Z

Jag har ingen erfarenhet av den upload du använder. 
Exemplet med for each hittade jag här
 <http://www.verio.com/support/view_article.cfm?doc_id=561> 

så du kanske kan titta mer där.

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

## #24 — mikul, 2001-11-24T23:13Z

jag ska kolla där...
men tack så otroligt mycket för hjälpen!
den är värkligen uppskattad...

/ Mikul

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

## #25 — mikul, 2001-11-24T23:33Z

så här blev det färdiga resultatet:

```
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("C:\Inetpub\wwwroot\asp\kas\reportage\images")
	
	Function namn(str)
		if isnull(str) or len(str) = 0 then 
			name = "" 
			return
		end if
		Dim pos
		str = Trim(str)
		pos = inStrRev(str,"\")
		namn = Right(str,Len(str)-pos)
	End Function

	Sub add(Fil)
		Dim Conn
		Set Conn = Server.Createobject("Adodb.Connection")
		Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("kas/reportage/db.mdb")
		sql = "Insert into bilder(bild,rubrik) Values('" & Fil & "','rubrik')"
		Conn.Execute (sql)
		Conn.Close
		Set Conn = Nothing
	End Sub
	
	For Each File in Upload.Files
		add(namn(File.Path))
	Next 

	Response.write Count & " files uploaded."
If Upload.Expires <> CDate("9/9/9999") Then Response.Write "<HR>AspUpload expires on " & Upload.Expires
%>
```

jag hade först och främst satt ett / i stället för \\ i funktionen...
sen fick jag hjälp med att hitta den rätta For-Each satsen...

men ett sort tack ska du ha Lars, och även Jörgen.

/ Mikul

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

## #26 — voigtann1, 2001-11-25T12:49Z

Jag behöver en Upploder för bilder.... fungera denna eller är det inte hela kodeN?

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

## #27 — mikul, 2001-11-26T00:32Z

tyvärr är inte det hela koden...
du behöver dock en komponent installerad på servern för att kunna använda denna kod...
om du inte vill installera en komponent så finns det andra script för detta.
exempelvis detta som laddar upp filerna ifråga till mappen "filer" som du lägger i samma mapp som asp dokumentet ligger i...

```

<%	@EnableSessionState	= False %>
<%	Option Explicit %>
<%  Response.Buffer = True %>
<%	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 "<tr><td><hr></td></tr>"
	For Each g_oFile In g_oFolder.Files
		Response.Write "<tr><td><a href=""filer/" & 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") & """>"
	Response.Write "<input type=""file"" name=""upload""> &nbsp; <input type=""submit"" value=""Ladda upp""></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
%>
```

fast jag skulle starkt råda dig till att installera en komponent...
kontakta mig på min mail så kan jag skicka den åt dig + hela koden som jag använder mig av för att ladda upp filer och registrera dem i en databas...

/ Mikul

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

## #28 — mikul, 2001-11-26T00:32Z

tyvärr är inte det hela koden...
du behöver dock en komponent installerad på servern för att kunna använda denna kod...
om du inte vill installera en komponent så finns det andra script för detta.
exempelvis detta som laddar upp filerna ifråga till mappen "filer" som du lägger i samma mapp som asp dokumentet ligger i...

```

<%	@EnableSessionState	= False %>
<%	Option Explicit %>
<%  Response.Buffer = True %>
<%	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 "<tr><td><hr></td></tr>"
	For Each g_oFile In g_oFolder.Files
		Response.Write "<tr><td><a href=""filer/" & 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") & """>"
	Response.Write "<input type=""file"" name=""upload""> &nbsp; <input type=""submit"" value=""Ladda upp""></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
%>
```

fast jag skulle starkt råda dig till att installera en komponent...
kontakta mig på min mail så kan jag skicka den åt dig + hela koden som jag använder mig av för att ladda upp filer och registrera dem i en databas...

/ Mikul

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

## #29 — mikul, 2001-11-26T00:33Z

varför kom det två gånger?
konstigt...
/ Mikul

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/12826-ogiltigt-proceduranrop-eller-argument-mid/page2  
Föregående sida: https://www.webforum.nu/amne/asp/12826-ogiltigt-proceduranrop-eller-argument-mid.md
