Avatar billede fomse Nybegynder
20. december 2002 - 11:29 Der 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"

'  Deny physical path
'  *******************
  mySmartUpload.DenyPhysicalPath = True

'  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>

Fomse:-)
Avatar billede medions Nybegynder
20. december 2002 - 11:31 #1
<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"

'  Deny physical path
'  *******************
  mySmartUpload.DenyPhysicalPath = True

'  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!

//>Rune
Avatar billede medions Nybegynder
20. december 2002 - 11:34 #2
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"

'  Deny physical path
'  *******************
  mySmartUpload.DenyPhysicalPath = True

'  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>

//>Rune
Avatar billede fomse Nybegynder
20. december 2002 - 11:43 #3
Nu bliver billedet slet ikke lagt i databasen! Billedet uploades men i tabelen nyheder bliver billedet ikke lagt i kollonen FILENAME...
Avatar billede medions Nybegynder
20. december 2002 - 11:48 #4
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!

//>Rune
Avatar billede fomse Nybegynder
20. december 2002 - 11:58 #5
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.

Fomse
Avatar billede medions Nybegynder
20. december 2002 - 12:01 #6
fomse> Desvære, jeg er på arbejde lige nu, så det går ikke jeg begynder at rode med noget andet end det jeg er igang med nu :o(

Men prøv at læs hvad jeg har skevet igen, det er svaret på dit spørgsmål!

//>Rune
Avatar billede fomse Nybegynder
20. december 2002 - 12:03 #7
medions>> :o( Øv, okay tak for hjælpen, jeg forsøger om jeg kan finde ud af det!! Vender tilbage senere...
Avatar billede medions Nybegynder
16. januar 2003 - 12:11 #8
Thx 4 Poinz

//>Rune
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester