Till en början kan du döpa om dina textareor till mer än bara "beskriv" som alla heter nu. Döp dem till beskriv2, beskriv3 m.m. och ta emot info från de fälten i formuläret med hjälp av Request.Form.
Ladda upp flera filer i AspUpload?
14 svar · 434 visningar · startad av Bosse168
Har ändrat namnen till beskriv2, beskriv3 osv. men den skriver fortfarande bara in fältet "beskriv1" i alla rader.
Set beskriv = [i]Request.Form[/i]("beskriv")
Du får nog kanske sätta in info i databasen 4 ggr.. Ändra bara beskriv till beskriv2, beskriv3 etc. i SQL-frågan.
Och hur gör jag det?
Utan att besvara den egentliga frågan:
Man ska inte använda Set till vanliga variabler, utan endast till objekt.
Dessutom; m_soderlund: man får inte använda Request.Form när man laddar upp filer, utan det är korrekt med Upload.form som Bosse168 har i sin kod.
Exekvera en SQL-fråga 4 ggr.
Cn.Execute("INSERT INTO extreme_pic (bildID,catID,rubrik,beskrivning,slaf,storlek,datum) VALUES('"& antal &"',"& catID &",'"& Replace(rubrik,"'","''") &"','"& Replace(beskriv,"'","''") &"','"& Session("username") &"','"& Round((File.Size / 1024), 1) &"','"& Now() &"')")
Byt ut beskriv till beskriv2 etc. för varje ny SQL-fråga. Alltså, ungefär så här:
Cn.Execute("fråga1")
Cn.Execute("fråga2")
Cn.Execute("fråga3")
Cn.Execute("fråga4")
Inte prestandavänligt, men men..
Ah, @nders! :bire
Strunta i det jag skrivit kring Request.Form och Upload.Form. ;)
beskriv = Upload.Form("beskriv")
beskriv2 = Upload.Form("beskriv2")
beskriv3 = Upload.Form("beskriv3")
beskriv4 = Upload.Form("beskriv4")
SQL-frågor:
Cn.Execute("fråga 1 med beskriv")
Cn.Execute("fråga 2 med beskriv2")
Cn.Execute("fråga 3 med beskriv3")
Cn.Execute("fråga 4 med beskriv4")
Men hur blir det när det inte laddas upp 4 bilder utan bara 2?
Och jag förstår inte alls vad du menar med:
Cn.Execute("fråga 1 med beskriv")
Cn.Execute("fråga 2 med beskriv2")
Cn.Execute("fråga 3 med beskriv3")
Cn.Execute("fråga 4 med beskriv4")
Det funkar inte att göra så den lägger ju till hur många rader som helst. även dom som inte är ifyllda.
Ingen som vet hur man kan ladda upp flera bilder samtidigt? :(
Det är bara att lägga till fler fält där man kan välja en fil som ska laddas upp. När du laddar upp så kör du kod som laddar upp filer från alla fält som inte är noll.
Det gör koden redan
For Each File in Upload.Files
Kruxet är ju att den bara hämtar fältet "beskriv1".
Kan detta fungera?
dim i
i = 1
For Each File in Upload.Files
[b]i = i +1[/b]
'---------------- Namnet SLUT ----------------
catID = Upload.Form("catID")
rubrik = Upload.Form("rubrik")
beskriv = Upload.Form([b]"beskriv" & i,[/b])
'--------------------------------------
Connect.Execute("INSERT INTO extreme_pic (bildID,catID,rubrik,beskrivning,slaf,storlek,datum) VALUES('"& antal &"',"& catID &",'"& Replace(rubrik,"'","''") &"','"& Replace(beskriv,"'","''") &"','"& Session("username") &"','"& Round((File.Size / 1024), 1) &"','"& Now() &"')")
if Err <> 0 Then
Response.Write "Fel vid uppladdning: " & Err.Description
Else
File.Delete
Response.Write "Success!<br>"
End If
Next
Beroende på vilken bild som laddas upp så kommer värdet från rätt formulärfält att tas emot. Variabeln i har värdet fil nr x som laddas upp, där x exempelvis är 3 om bild 3 för närvarande håller på att laddas upp. Detta kräver att dina formulärfält heter beskriv1, beskriv2, beskriv3 resp. beskriv4. :)
En sak till - inget fält i ditt formulär heter rubrik. Varifrån hämtar du den infon? Är det egentligen input-fälten som heter file1, file2, file3 och file4 som det är meningen att information ska tas emot från? Om så är fallet så ska du i stället för
rubrik = Upload.Form("rubrik")
skriva
rubrik = Upload.Form("file" & (i-1))
Hoppas att du nu förstår. :)

