20. december 2002 - 11:29Der er
7 kommentarer og 1 løsning
Uploade billede ind i accesdatabase hvor NyhedID er MAX.
Jeg sidder og roder med et nyhedssystem hvor man først skriver selve nyheden og ligger den i databasen, derefter bliver man ledt videre og skal vælge om man vil uploade et billede eller ej. Problemet er at billedet ikke bliver lagt i rækken med nyhedens NyhedID men får sin egen række i databasen, og bliver defor ikke vist i tabellen med nyheden men i en tabel for sig selv.
Kan nogen hjælpe?
Her er uploedfunktionen:
<html> <head> <!-- KOMMENTAR: Dette javascript bruges til at åbne login-vinduet i bestemt størrelse! --> <SCRIPT language="JavaScript"> <!-- // Kan godt undværes... men husk så lige at rette linket til admin-modulet, // det skal så rettes til login.asp hvis det er. function loginvindue() { window.open('login.asp','login','width=260,height=130,resizable=no,scrollbars=no,toolbar=no,directories=no,copyhistory=no,menubar=no,location=no'); } //--> </SCRIPT> </head> <body bgcolor="#FADF9D"> <H1>Billede Upload</H1> <HR> <% On Error Resume Next
' Variables ' ********* Dim mySmartUpload Dim file Dim oConn Dim strSQL Dim oRs Dim intCount intCount=0
' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Only allow jpg or gif files ' *************************** mySmartUpload.AllowedFilesList = "jpg,gif"
' DeniedFilesList can also be used : ' Allow all files except exe, bat and asp ' *************************************** ' mySmartUpload.DeniedFilesList = "exe,bat,asp"
' Only allow files smaller than 50000 bytes ' ***************************************** mySmartUpload.MaxFileSize = 10000000
' Deny upload if the total fila size is greater than 200000 bytes ' *************************************************************** mySmartUpload.TotalMaxFileSize = 10000000
' Upload ' ****** mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server ' **************************************************************************** intCount = mySmartUpload.Save("../nonsec/Billeder") ' sample with a physical path ' intCount = mySmartUpload.Save("c:\temp\")
' Trap errors ' *********** If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else ' Display the number of files uploaded ' ************************************ Response.Write(intCount & " file(s) uploaded.") Response.Write "<a href='pw_admin.asp'><strong><font size='2'>Gå videre</font></strong></a>" End If
' Connect to the DB ' ***************** Set oConn = Server.CreateObject("ADODB.Connection") curDir = Server.MapPath("../nonsec/nyheder-02.mdb") oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
' Open a recordset ' **************** strSQL = "SELECT FILENAME,FILE FROM nyheder"
Set oRs = Server.CreateObject("ADODB.recordset") Set oRs.ActiveConnection = oConn oRs.Source = strSQL oRs.LockType = 3 oRs.Open
' Select each file ' **************** For each file In mySmartUpload.Files ' Only if the file exist ' ********************** If not file.IsMissing Then
' Add the current file in a DB field ' ********************************** oRs.AddNew file.FileToField oRs.Fields("FILE") oRs("FILENAME") = file.FileName oRs.Update intCount = intCount + 1 End If Next
' Destruction ' *********** oRs.Close oConn.Close Set oRs = Nothing Set oConn = Nothing %> </BODY> </HTML>
<html> <head> <!-- KOMMENTAR: Dette javascript bruges til at åbne login-vinduet i bestemt størrelse! --> <SCRIPT language="JavaScript"> <!-- // Kan godt undværes... men husk så lige at rette linket til admin-modulet, // det skal så rettes til login.asp hvis det er. function loginvindue() { window.open('login.asp','login','width=260,height=130,resizable=no,scrollbars=no,toolbar=no,directories=no,copyhistory=no,menubar=no,location=no'); } //--> </SCRIPT> </head> <body bgcolor="#FADF9D"> <H1>Billede Upload</H1> <HR> <% On Error Resume Next
' Variables ' ********* Dim mySmartUpload Dim file Dim oConn Dim strSQL Dim oRs Dim intCount intCount=0
' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Only allow jpg or gif files ' *************************** mySmartUpload.AllowedFilesList = "jpg,gif"
' DeniedFilesList can also be used : ' Allow all files except exe, bat and asp ' *************************************** ' mySmartUpload.DeniedFilesList = "exe,bat,asp"
' Only allow files smaller than 50000 bytes ' ***************************************** mySmartUpload.MaxFileSize = 10000000
' Deny upload if the total fila size is greater than 200000 bytes ' *************************************************************** mySmartUpload.TotalMaxFileSize = 10000000
' Upload ' ****** mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server ' **************************************************************************** intCount = mySmartUpload.Save("../nonsec/Billeder") ' sample with a physical path ' intCount = mySmartUpload.Save("c:\temp\")
' Trap errors ' *********** If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else ' Display the number of files uploaded ' ************************************ Response.Write(intCount & " file(s) uploaded.") Response.Write "<a href='pw_admin.asp'><strong><font size='2'>Gå videre</font></strong></a>" End If
' Connect to the DB ' ***************** Set oConn = Server.CreateObject("ADODB.Connection") curDir = Server.MapPath("../nonsec/nyheder-02.mdb") oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
' Open a recordset ' **************** strSQL = "SELECT FILENAME,FILE FROM nyheder WHERE ID = " & Request.QueryString("BrugerensID")
Set oRs = Server.CreateObject("ADODB.recordset") Set oRs.ActiveConnection = oConn oRs.Source = strSQL oRs.LockType = 3 oRs.Open
' Select each file ' **************** For each file In mySmartUpload.Files ' Only if the file exist ' ********************** If not file.IsMissing Then
' Add the current file in a DB field ' **********************************
file.FileToField oRs.Fields("FILE") oRs("FILENAME") = file.FileName oRs.Update intCount = intCount + 1 End If Next
' Destruction ' *********** oRs.Close oConn.Close Set oRs = Nothing Set oConn = Nothing %> </BODY> </HTML>
Det er fordi du skal lave en UPDATE istedet for en INSERT!
Nej, hov sorry, jeg læste vidst ik' dit spm ordentlig.. Du skal gøre sådan her:
<html> <head> <!-- KOMMENTAR: Dette javascript bruges til at åbne login-vinduet i bestemt størrelse! --> <SCRIPT language="JavaScript"> <!-- // Kan godt undværes... men husk så lige at rette linket til admin-modulet, // det skal så rettes til login.asp hvis det er. function loginvindue() { window.open('login.asp','login','width=260,height=130,resizable=no,scrollbars=no,toolbar=no,directories=no,copyhistory=no,menubar=no,location=no'); } //--> </SCRIPT> </head> <body bgcolor="#FADF9D"> <H1>Billede Upload</H1> <HR> <% On Error Resume Next
' Variables ' ********* Dim mySmartUpload Dim file Dim oConn Dim strSQL Dim oRs Dim intCount intCount=0
' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Only allow jpg or gif files ' *************************** mySmartUpload.AllowedFilesList = "jpg,gif"
' DeniedFilesList can also be used : ' Allow all files except exe, bat and asp ' *************************************** ' mySmartUpload.DeniedFilesList = "exe,bat,asp"
' Only allow files smaller than 50000 bytes ' ***************************************** mySmartUpload.MaxFileSize = 10000000
' Deny upload if the total fila size is greater than 200000 bytes ' *************************************************************** mySmartUpload.TotalMaxFileSize = 10000000
' Upload ' ****** mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server ' **************************************************************************** intCount = mySmartUpload.Save("../nonsec/Billeder") ' sample with a physical path ' intCount = mySmartUpload.Save("c:\temp\")
' Trap errors ' *********** If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else ' Display the number of files uploaded ' ************************************ Response.Write(intCount & " file(s) uploaded.") Response.Write "<a href='pw_admin.asp'><strong><font size='2'>Gå videre</font></strong></a>" End If
' Connect to the DB ' ***************** Set oConn = Server.CreateObject("ADODB.Connection") curDir = Server.MapPath("../nonsec/nyheder-02.mdb") oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
' Open a recordset ' **************** strSQL = "SELECT * FROM nyheder WHERE ID = MAX(ID)"
Set oRs = Server.CreateObject("ADODB.recordset") Set oRs.ActiveConnection = oConn oRs.Source = strSQL oRs.LockType = 3 oRs.Open
' Select each file ' **************** For each file In mySmartUpload.Files ' Only if the file exist ' ********************** If not file.IsMissing Then
' Add the current file in a DB field ' **********************************
file.FileToField oRs.Fields("FILE") oRs("FILENAME") = file.FileName oRs.Update intCount = intCount + 1 End If Next
' Destruction ' *********** oRs.Close oConn.Close Set oRs = Nothing Set oConn = Nothing %> </BODY> </HTML>
ok, jeg kan ikke lgie helt finde rundt i dit script...
Men din fejl er egentlig kun at du indsætter en ny record istedet for at updatere den som i forvejen er der!
Idet du har dette: ' Add the current file in a DB field ' ********************************** oRs.AddNew file.FileToField oRs.Fields("FILE") oRs("FILENAME") = file.FileName oRs.Update intCount = intCount + 1
Så opretter du en ny record, altså Adder en! Hvis du fjerner den linje, vil den updatere den record du peger på! -det vil sige at du også skal angive en WHERE clouse i din SQL statement! Fx.
strSQL = "SELECT Filename FROM tabelnavn WHERE ID = 12
oRs("FILENAME") = "filnavn" oRs.Update
Her vil record nr. 12 blive updateret med Filnavn!
medions>> Kan simpelthen ikkeo verskue hvad jeg har lavet lige nu:-) Er lidt newbie i asp........ Har du lyst til at jeg mailer dig det hele så du evt. kan kikke på det? Du får selvfølgelig flere point. Men jeg vil gerne vide hvad du gør, for jeg vil gerne lære det.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.