---
title: "Ladda upp filer med AspUpload och samtidigt skicka värden till databas.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/143755-ladda-upp-filer-med-aspupload-och-samtidigt-skicka-värden-till-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Gardell"
published: "2006-03-11T00:14:24.000Z"
updated: "2006-03-21T22:25:12.000Z"
replies: 9
views: 629
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/143755-ladda-upp-filer-med-aspupload-och-samtidigt-skicka-värden-till-databas"
---

# Ladda upp filer med AspUpload och samtidigt skicka värden till databas..

## #1 — Gardell, 2006-03-11T00:14Z

Hej!

Jag använder mig av AspUpload till mitt script, och så långt fungerar det väl. Det är två filer åt gången jag laddar upp och vill även välja kategori och ha en liten beskrivning i samma formulär även ta reda på filnamnen och spara det till en databas - här kommer problemen.

Först och främst lyckas jag inte köra en Request.Form efter att ha laddat upp filerna, då får jag följande fel: 

```
Request object error 'ASP 0207 : 80004005'

Cannot use Request.Form

skicka.asp, line 41

Cannot use Request.Form collection after calling BinaryRead.
```

 

Min (luddiga) kod för att försöka få allt att fungera är följande: 

```
Set Upload = Server.CreateObject("Persits.Upload")
Count = Upload.Save(Server.MapPath("/") & "\..\filer")
	
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("filer.mdb") 

Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "Select * From filer", Connect, 3, 3

RecSet.AddNew

RecSet("datum") = Date
RecSet("fil1") = File.Name
RecSet("fil2") = File.Name
RecSet("kategori") = Request.Form("kategori")
RecSet("beskrivning") = Request.Form("beskrivning")
RecSet.Update
RecSet.Close
```

 

Så ser det ut.. jag vet inte ens om hälften skulle fungera men det tar alltså stopp redan vid första Request.Form. :( 

Dessutom så har jag ju två filformulärsfält, hur kan jag ta reda på filnamnet från båda de här två? Det lilla jag kunde rota fram på AspUpload.com var nåt med "File.Name" men det verkar väl bara vara för ett fält.. 

Hur göra? :) Tacksam för svar!

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

## #2 — @nders, 2006-03-11T06:38Z

> **Gardell skrev:**
>
> Först och främst lyckas jag inte köra en Request.Form efter att ha laddat upp filerna, då får jag följande fel: 
>
> ```
> Request object error 'ASP 0207 : 80004005'
> 
> Cannot use Request.Form
> 
> skicka.asp, line 41
> 
> Cannot use Request.Form collection after calling BinaryRead.
> ```

Det är helt riktigt. Därför har uploadkomponenterna egna metoder för att hämta värden från formulärfält.

```
foo = Upload.Form("foo")
```

> **Gardell skrev:**
>
> Dessutom så har jag ju två filformulärsfält, hur kan jag ta reda på filnamnet från båda de här två? Det lilla jag kunde rota fram på AspUpload.com var nåt med "File.Name" men det verkar väl bara vara för ett fält..

Du rotar inte speciellt bra. På [denna sida](http://www.aspupload.com/manual_simple.html) finns detta exempel med en for-loop:

```
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save "c:\upload"
%>

Files:<BR>
<%
For Each File in Upload.Files
Response.Write File.Name & "= " & File.Path & " (" & File.Size &" bytes)<BR>"
Next
%>

<P>

Other items:<BR>
<%
For Each Item in Upload.Form
Response.Write Item.Name & "= " & Item.Value & "<BR>"
Next
%>
```

mvh

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

## #3 — Gardell, 2006-03-16T17:23Z

Näeh.. jag får inte till det här. :( 
Förstår inte riktigt hur man får fram filnamnen på båda filerna och skickar in de i databasen..

Dessutom får jag inte foo = Upload.Form("foo") att fungera heller. Vart ska den placeras och hur ska den formuleras?

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

## #4 — jstal, 2006-03-16T19:06Z

RecSet("kategori") = Upload.Form("kategori")
RecSet("beskrivning") = Upload.Form("beskrivning")

När du använder aspupload definerar du en egen metod, som du kallade Upload så byt bara ut request mot Upload så ska det nog gå vägen.

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

## #5 — Gardell, 2006-03-16T19:47Z

Ahh. Så dum man känner sig. :) Tack!

Nu är frågan bara hur jag lyckas få fram namnet på båda filerna. Jag har provat massa men kommer bara fram till typ det här:

RecSet("fil1") = File.FileName
RecSet("fil2") = File.FileName

Och det funkar ju förstås inte.

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

## #6 — jstal, 2006-03-16T20:22Z

File.Filename fungerar utmärkt för mig...

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

## #7 — lilja, 2006-03-16T20:27Z

Lösningen fanns bland tidigare svar i denna tråd...

```
<%
intFil = 1
For Each File in Upload.Files
	RecSet("fil" & intFil) = File.Name
	intFil = intFil + 1
Next
%>
```

Lite osäker på om man får skriva sådana dynamiska namn som jag gjort i RecordSet. Annars skall det fungera. Dessutom tycker jag det borde finnas något liknande File.Next. Jag har dock aldrig tittat på just det fallet så det är bara en gissning :)

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

## #8 — Gardell, 2006-03-17T14:32Z

Måste erkänna att jag är nollställd på det här.. :l 

Testade lilja's kod (vet inte ens var den ska placeras) men fick följande svar:

> ADODB.Recordset error '800a0cc1'
> 
> Item cannot be found in the collection corresponding to the requested name or ordinal.
> 
> send.asp, line 67

 

Line 67:
RecSet("fil" & intFil) = File.Name

Och hela koden:

```
	Set Upload = Server.CreateObject("Persits.Upload")
	Count = Upload.Save(Server.MapPath("/") & "\..\filer")
	
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("filer.mdb") 

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	RecSet.Open "Select * From filer", Connect, 3, 3
	
	intFil = 1
	For Each File in Upload.Files
	RecSet("fil" & intFil) = File.Name
	intFil = intFil + 1
	Next
	
	RecSet.AddNew

		RecSet("datum") = Date
		RecSet("filnamn") = FileName
		RecSet("filnamn2") = FileName
		RecSet("kategori") = Upload.Form("kategori")
		RecSet("beskrivning") = Upload.Form("beskrivning")
		RecSet.Update
		RecSet.Close
```

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

## #9 — lilja, 2006-03-17T17:00Z

Vad är det du ska göra egentligen? Varför är det två filer som skall laddas upp?

Finns det verkligen något som heter fil1 och fil2? Är det inte filnamn och filnamn2? I sådana fall ska du ändra detta...

```
	strExtra = ""
	For Each File in Upload.Files
	RecSet("filnamn" & strExtra) = File.Name
	strExtra= "2"
	Next
```

Jag tycker du ska fundera på hur din databas ser ut. Jag hade ändrat så att man bara spelar en fil till varje RecordSet.

Tabell: filer
Poster:
datum
filnamn
kategori
beskrivning

Sen lägger du in:

```
	RecSet.AddNew
	[Här skriver du RecordSetten som skall sparas]
	RecSet.Update
	RecSet.Close
```

innanför For Each satsen där du försöker spara två filnamn i en idag.

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

## #10 — jstal, 2006-03-21T22:25Z

Enklare att använda SQL-satser?
Ex:

```
		For Each File In objUpload.Files
		strSQL = "INSERT INTO tabell(varde1, filnamn) VALUES('" & byt(objUpload.form("varde1")) &"', '" & File.Filename &"')" 
			objConn.Execute(strSQL)
		Next
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/143755-ladda-upp-filer-med-aspupload-och-samtidigt-skicka-värden-till-databas
