VinnarenMedlem sedan sep. 2005833 inlägg Hej
Jag behöver hjälp med min bilduppladdning. har hittills följande kod:
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("c:\upload")
Upload.SetMaxSize 50000
Upload.OverwriteFiles = False
bildNamn = SafeSQL(Upload.Files(1).ExtractFileName)
bildAgare = CLng(session("userID"))
bildTyp = ??
objConn.execute("INSERT INTO bildHistorik (bildAgare, bildNamn, bildTyp)" & " VALUES (" & bildAgare & ", '" & bildNamn & "', '" & bildTyp & "')")
Response.Write ""&bildNamn&" är nu sparad"
Det man laddar upp sparas, men nu vill jag att filen man laddar upp ska få ett ID nummer av databasen som filnamn. Sen så ska filnamnet sparas i databasen vilket det gör, men jag vill även att filtypen ska sparas i databasen i kolumnen bildTyp typ gif, png osv.
Hur löser jag dessa två saker??
Tacksam för all hjälp
bildTyp = SafeSQL(Upload.Files(1).ImageType)
skulle jag gissa på en snabb läsning på http://www.aspupload.com/
VinnarenMedlem sedan sep. 2005833 inlägg ok, men hur får jag ut den genererade PK i databasen när jag sparar bilden där?? Så man vet vilket namn bilden ska ha???
va?
Du har sparat sökvägen på databasen inte bilden, bilden har du laddat upp på c:\upload på din Server... om vi säger nu att din sida ligger rakt på c:\ så får du göra en databas öppning med SELECT * From bildHistorik
Sen göra något recordset som loopar ut alla bilder med något i stil med:
do until rs.eof
response.write "<img src=""upload\" & rs("bildNamn") &""" alt=""""/>"
rs.movenext
loop
VinnarenMedlem sedan sep. 2005833 inlägg hmm
jag måste ju spara bildens namn i databasen först. Sen så ska bilden få ett nytt namn, det ID-nummer som den fick i databasen
läs http://www.aspupload.com/ har för mig dom har en bra tutorial om detta..
VinnarenMedlem sedan sep. 2005833 inlägg ok, har läst den ett antal gånger. Men problemet just nu är hur får jag ut det ID som bilden får när man sparar den i databasen?
@ndersMedlem sedan juni 200032 969 inlägg Ett alternativ är ju att direkt efter insert hämta ut id med select @@identity, och sedan använda FSO för att byta namn på filen som har laddats upp.
Om man inte orkar göra på rätt sätt, dvs göra insert innan dess att man sparar filen alltså.
VinnarenMedlem sedan sep. 2005833 inlägg ok, har nu följande kod:
Set Upload = Server.CreateObject("Persits.Upload")
bildNamn = SafeSQL(Upload.Files.ExtractFileName)
bildAgare = CLng(session("userID"))
bildTyp = SafeSQL(Upload.Files.ImageType)
'####Kontrollerar om namnet på filen redan finns
Set objRS = objConn.Execute("SELECT * FROM bildHistorik WHERE bildNamn= "&bildNamn)
IF objRS.EOF THEN
objConn.execute("INSERT INTO bildHistorik (bildAgare, bildNamn, bildTyp)" & " VALUES (" & bildAgare & ", '" & bildNamn & "', '" & bildTyp & "')")
'Hämtar ut bildens id nummer
Set objRS1 = objConn.Execute("SELECT bildID FROM bildHistorik WHERE bildNamn= "&bildNamn)
IF NOT objRS1.EOF THEN
Count = Upload.Save("c:\upload\" & objRS("bildID") & "." & Upload.Files.ImageType & "")
Upload.SetMaxSize 50000
Upload.OverwriteFiles = False
Response.Write ""&bildNamn&" är nu sparad"
ELSE
Response.Write "Bilden kunde inte sparas i databasen"
END IF
ELSE
Response.Write "Filnamnet finns redan i databasen"
END IF
Men jag får följande felmeddelande när bilden ska sparas:
Object doesn't support this property or method: 'Upload.Files.ExtractFileName'
på raden:
bildNamn = SafeSQL(Upload.Files.ExtractFileName)
@ndersMedlem sedan juni 200032 969 inlägg @@identity var inget att tänka på för att hämta rätt id?
Dessutom måste du lära dig att ha apostrofer runt strängvärden (bildnamn till exempel) i dina SQL-frågor.
I tillägg tror jag minsann att du måste spara filen till minne först (typ utan att ange sökväg) och sedan kan du komma åt dess egenskaper. När du är klar med allt annat kan du så spara till disk.
VinnarenMedlem sedan sep. 2005833 inlägg provar detta sätt först för att få ut ID:t.
har nuu följande kod:
Count = Upload.Save("c:\temp")
bildNamn = SafeSQL(Upload.Files.ExtractFileName)
bildAgare = CLng(session("userID"))
bildTyp = SafeSQL(Upload.Files.ImageType)
'####Kontrollerar om namnet på filen redan finns
Set objRS = objConn.Execute("SELECT * FROM bildHistorik WHERE bildNamn= '"&bildNamn&"'")
IF objRS.EOF THEN
objConn.execute("INSERT INTO bildHistorik (bildAgare, bildNamn, bildTyp)" & " VALUES (" & bildAgare & ", '" & bildNamn & "', '" & bildTyp & "')")
'Hämtar ut bildens id nummer
Set objRS1 = objConn.Execute("SELECT bildID FROM bildHistorik WHERE bildNamn= '"&bildNamn&"'")
IF NOT objRS1.EOF THEN
Upload.SetMaxSize 50000
Upload.OverwriteFiles = False
Upload.Files(1).MoveVirtual ("c:\upload\" & objRS("bildID") & "." & Upload.Files.ImageType & "")
Response.Write ""&bildNamn&" är nu sparad"
ELSE
Response.Write "Bilden kunde inte sparas i databasen"
END IF
ELSE
Response.Write "Filnamnet finns redan i databasen"
END IF
Men jag får samma felmeddelande som innan. Bilden sparas dock i temp mappen, men sen kommer felmeddelandet:
Object doesn't support this property or method: 'Upload.Files.ExtractFileName'
@ndersMedlem sedan juni 200032 969 inlägg Du har ju ändrat på din kod. Files är en collection. Så här har du skrivit i ditt första inlägg:
bildNamn = SafeSQL(Upload.Files(1).ExtractFileName)
VinnarenMedlem sedan sep. 2005833 inlägg oki, nu kommer jag ialla fall ner till raden
Upload.Files(1).MoveVirtual ("c:\upload\" & objRS("bildID") & "." & Upload.Files.ImageType & "")
innan det kraschar. Får nu felmeddelandet:
Exception occurred.
VinnarenMedlem sedan sep. 2005833 inlägg hjälpte inte att ändra, får samma felmeddelande :q
@ndersMedlem sedan juni 200032 969 inlägg Varför använder du MoveVirtual och anger en full sökväg?
http://www.aspupload.com/object_file.html#Move
VinnarenMedlem sedan sep. 2005833 inlägg hmm, för mycket copy & paste ;)
Har nu provat:
File.Move ("c:\upload\" & objRS("bildID") & "." & Upload.Files(1).ImageType & "")
och
Upload.Move ("c:\upload\" & objRS("bildID") & "." & Upload.Files(1).ImageType & "")
men bägge ger samma felmeddelande som innan §jr
Upload.Move ("c:\upload\" & objRS("bildID") & "." & Upload.Files(1).ImageType & "")
du behöver inte ha & "" i slutet... annars måste du använda dig av & """
@ndersMedlem sedan juni 200032 969 inlägg Har du skapat objektet File då?
(Du kan inte använda objektet Upload, metoden Move tillhör file-objektet)
VinnarenMedlem sedan sep. 2005833 inlägg får nu felmeddelandet:
Object doesn't support this property or method: 'Upload.Move'
på samma rad som tidigare