aleborgMedlem sedan jan. 20013 341 inlägg Försökte uppdatera db:n så här men får inget i db:n
conn.Execute= "UPDATE Produkter SET Paradbild = '" & mySmartUpload.Form("Paradbild").filename & "', Fotografi = '" & mySmartUpload.Form("Fotografi").filename & "', Fotografi1 = '" & mySmartUpload.Form("Fotografi1").filename & "', Fotografi2 = '" & mySmartUpload.Form("Fotografi2").filename & "', Pdffil = '" & mySmartUpload.Form("Pdffil").filename & "' Where ID ="& Request.QueryString("ID") &""
Någon som vet hur koden ska se ut för att kunna UPDATERA databasen med dom nya namnen från dom nyupladdade filerna?
@ndersMedlem sedan juni 200032 969 inlägg prova:
conn.Execute ("UPDATE Produkter SET Paradbild = '" & mySmartUpload.Form("Paradbild").filename & "', Fotografi = '" & mySmartUpload.Form("Fotografi").filename & "', Fotografi1 = '" & mySmartUpload.Form("Fotografi1").filename & "', Fotografi2 = '" & mySmartUpload.Form("Fotografi2").filename & "', Pdffil = '" & mySmartUpload.Form("Pdffil").filename & "' Where ID ="& Request.QueryString("ID"))
ange också gärna alltid om du får felmeddelande och i så fall vilket.
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
[Redigerat av @nders den 23 feb 2001]
aleborgMedlem sedan jan. 20013 341 inlägg Error Type:
Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method: 'filename'
/unisafe/admin/nyprodpic2.asp, line 37
fick jag nu!
Orginal koden för att lägga till en post och ladda upp filer ser ut så här:
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
SQL= "SELECT * FROM Produkter WHERE 1=2"
rs.Open SQL,Conn,1,2
rs.AddNew
For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
rs("Produktnamn")=mySmartUpload.Form("rubr")
rs("Paradtext")=mySmartUpload.Form("paradtext")
rs("Paradbild")=mySmartUpload.Files(1).Filename
rs("Beskr")=mySmartUpload.Form("beskr")
rs("Beskr2")=mySmartUpload.Form("beskr2")
rs("Beskr3")=mySmartUpload.Form("beskr3")
rs("Pris")=mySmartUpload.Form("pris")
rs("Hojd")=mySmartUpload.Form("hojd")
rs("Bredd")=mySmartUpload.Form("bredd")
rs("Djup")=mySmartUpload.Form("djup")
rs("Artnr")=mySmartUpload.Form("artnr")
rs("Fotografi")=mySmartUpload.Files(2).Filename
rs("Fotografi1")=mySmartUpload.Files(3).Filename
rs("Fotografi2")=mySmartUpload.Files(4).Filename
rs("Ssfintyg")=mySmartUpload.Form("ssf")
rs("KategID")=mySmartUpload.Form("kategid")
rs("Pdffil")=mySmartUpload.Files(5).Filename
rs.Update
%>
men nu så ska jag ladda upp nya filer och uppdatera filnamnen!
@ndersMedlem sedan juni 200032 969 inlägg hörrudu, filename är en property som tillhör files.
mySmartUpload.Form("Fotografi2").filename kommer aldrig att fungera.
så här används filename (klippt från din kod, ju): mySmartUpload.Files(2).Filename
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
aleborgMedlem sedan jan. 20013 341 inlägg Ahhh, det har du rätt i!
Men ett annat problem dyker då upp!
För att man inte ska behöva ladda upp alla filer så ska man få in:
For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
men då får jag på mittenraden felet
Error Type:
ADODB.Recordset (0x800A0CC1)
Objektet kunde inte hittas i mängden med det begärda namnet eller numret.
vad missar jag?
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
conn.Execute ("UPDATE Produkter SET Paradbild = '" & mySmartUpload.Files(1).Filename & "', Fotografi = '" & mySmartUpload.Files(2).Filename & "', Fotografi1 = '" & mySmartUpload.Files(3).Filename & "', Fotografi2 = '" & mySmartUpload.Files(4).Filename & "', Pdffil = '" & mySmartUpload.Files(5).Filename & "' Where ID ="& Request.QueryString("ID"))
%>
@ndersMedlem sedan juni 200032 969 inlägg For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
så som du skrivit den koden så försöker du stoppa in "bang.gif" i fältet [bang.gif] i tabellen. eller minfil.pdf i [minfil.pdf]. den kommer alltid att försöka stoppa in i ett fält med samma namn som filen.
det som är det största problemet med aspsmartupload, är att det inte är helt enkelt att knyta en viss fil till en viss data när man som du laddar upp flera filer på samma gång.
jag har gjort det enkelt för mig, jag har två filer som laddas upp samtidigt, men de är av olika typ (en .jpg/gif och en .pdf), så jag vet alltid vilka fält som tillhör vilken fil.
vad är det du försöker göra med just denna raden:
rs(file.name)=file.filename
??? förklara gärna på ren svenska.
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
aleborgMedlem sedan jan. 20013 341 inlägg Det var emission som skrev :)
Fråga honom :)
Det funkar i allafall, rätt fil till rätt plats och man behöver inte ladda upp alla filerna!
@ndersMedlem sedan juni 200032 969 inlägg okaj, har jag fel, månne?
ja, det är möjligt att jag har...
hmm.. ja bortse från mitt inlägg ovan.. :e
jag tror jag snurrar bort mig själv här, samtidigt som jag är tarvlig mot dig. sorry.
jag kanske återkommer under eftermiddagen.
redigering: vad heter dina fält i tabellen förresten, som filnamnen ska in i?
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
[Redigerat av @nders den 23 feb 2001]
aleborgMedlem sedan jan. 20013 341 inlägg Paradbild
Fotografi
Fotografi1
Fotografi2
Fotografi3
Pdffil
@ndersMedlem sedan juni 200032 969 inlägg det är klart att det där funkar! :e
om du ändrar till:
For each file In mySmartUpload.Files
[b]response.write file.name & "<br>"[/b]
rs(file.name)=file.filename
next
så borde den ju skriva ut även den som inte funkar, så vi åtminstone får se vilken det är...
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
[Redigerat av @nders den 23 feb 2001]
emissionMedlem sedan dec. 19996 721 inlägg Du behöver inte både
For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
och
rs("Paradbild")=mySmartUpload.Files(1).Filename
rs("Fotografi")=mySmartUpload.Files(2).Filename
rs("Fotografi1")=mySmartUpload.Files(3).Filename
rs("Fotografi2")=mySmartUpload.Files(4).Filename
rs("Pdffil")=mySmartUpload.Files(5).Filename
Den översta ersätter den andra.
Om man uppdaterar och inte lägger in en av filerna, vil du då att det filnamn som ligger i databasen ska ligga kvar, eller ska det tas bort?
aleborgMedlem sedan jan. 20013 341 inlägg Det ska ligga kvar!
Så här ser det ut nu:
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
conn.Execute ("UPDATE Produkter SET Paradbild = '" & mySmartUpload.Files(1).Filename & "', Fotografi = '" & mySmartUpload.Files(2).Filename & "', Fotografi1 = '" & mySmartUpload.Files(3).Filename & "', Fotografi2 = '" & mySmartUpload.Files(4).Filename & "', Pdffil = '" & mySmartUpload.Files(5).Filename & "' Where ID ="& Request.QueryString("ID"))
%>
Då får jag fel i
rs(file.name)=file.filename
Använder jag inte for satsen så tas allt annat bort om jag bara laddar upp en fil!
emissionMedlem sedan dec. 19996 721 inlägg Då måste du bygga UPDATE:n dynamiskt.
For each file In mySmartUpload.Files
strSQL=strSQL & "[" & file.name & "]='" & file.filename & "',"
next
strSQL=left(strSQL,len(strSQL)-1)
conn.Execute ("UPDATE Produkter SET " & strSQL & " Where ID =" & Request.QueryString("ID"))
aleborgMedlem sedan jan. 20013 341 inlägg Får fortfarande inte behålla dom fält som inte ska ändras :(
emissionMedlem sedan dec. 19996 721 inlägg Jag får nog ta och prova aspsmartupload innan jag skriver mer.
aleborgMedlem sedan jan. 20013 341 inlägg Kom du på det?
Har suttit o provat fram och tillbaka med alla sorters kombinationer men namnen bara skrivs över om man inte laddar upp nått! :(
emissionMedlem sedan dec. 19996 721 inlägg För att göra det enkelt får du helt enkelt kolla om du får något namn
For each file In mySmartUpload.Files
if len(file.filename)>0 then strSQL=strSQL & "[" & file.name & "]='" & file.filename & "',"
next
aleborgMedlem sedan jan. 20013 341 inlägg Tack, det funkade :) *hoppar av lycka* :e
aleborgMedlem sedan jan. 20013 341 inlägg Det gjorde det inte alls :(
Får inte behålla gamla filnamnet om man inte laddar upp igen:(
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
For each file In mySmartUpload.Files
if len(file.filename)>0 then strSQL=strSQL & "[" & file.name & "]='" & file.filename & "',"
next
Conn.Execute("UPDATE Kateg SET [Kategrubr] = '" & mySmartUpload.Form("Kategrubr") & "', [EngKategrubr] = '" & mySmartUpload.Form("EngKategrubr") & "', [Kategbild] = '" & mySmartUpload.Files(1).Filename & "' WHERE [KategID] = " & Request.QueryString("KategID") & " ")
%>