Avatar billede pretsmann Nybegynder
28. december 2004 - 21:42 Der er 20 kommentarer og
1 løsning

AspSmartUpload opret stinavne i db

Hej jeg forsøger at lave en "portal" hvor brugerne skal kunne ligge 5 billeder op..

Billed 1 bliver fint uploadet til serveren og blir døbt brugernavn1.jpg og sti til billedet i databasen er også ok - så er problemet at få oprettet stien til de sidste billeder i db.

Feltnavne i db er hhv. brugerImg1 brugerImg2 brugerImg3 brugerImg4 brugerImg5

Jeg har taget udgangspkt. i sample 4 som ser således ud..


<% if mode = "billedupload" then
                       
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
                       
                       
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
'  Session.LCID = 1030     
 
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload
 
'  ******
  intCount = mySmartUpload.Save("d:\web\localuser\prestmann.dk\public_html\images\")                     

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt

SQL = "Update beskrivelse Set brugerImg1 = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "
      oConn.Execute (SQL)

        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                             
                        %>
               
               
               
<% end if %>
Avatar billede ellebaek Nybegynder
28. december 2004 - 21:46 #1
mon ikke dette skulle kunne klare det..?
prøv det i hvert fald.. tror det virker..!

<% if mode = "billedupload" then
                     
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
                     
                     
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
'  Session.LCID = 1030   

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  ******
  intCount = mySmartUpload.Save("d:\web\localuser\prestmann.dk\public_html\images\")                   

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt

SQL = "Update beskrivelse Set brugerImg" & intCount & " = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "
      oConn.Execute (SQL)

        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                           
                        %>
             
             
             
<% end if %>
Avatar billede pretsmann Nybegynder
28. december 2004 - 22:13 #2
nej ikke helt optimalt, giver flg. fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Men der er jo ingen felter i db som hedder brugerImg

/login_ejertest.asp, line 1034
Avatar billede pretsmann Nybegynder
28. december 2004 - 22:14 #3
line 1034 er

      oConn.Execute (SQL)
Avatar billede ellebaek Nybegynder
28. december 2004 - 22:15 #4
det burde den heller ikke rette på...

prøv lige at skriver herinde hvad denne skriver:

<% if mode = "billedupload" then
                   
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
                   
                   
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
'  Session.LCID = 1030 

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  ******
  intCount = mySmartUpload.Save("d:\web\localuser\prestmann.dk\public_html\images\")                 

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt

felt = CStr("brugerImg" & intCount)
SQL = "Update beskrivelse Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "
response.write SQL & "<br>"
      'oConn.Execute (SQL)

        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                         
                        %>
Avatar billede pretsmann Nybegynder
28. december 2004 - 22:23 #5
Update beskrivelse Set brugerImg = 'images\bruger001_1.gif' Where brugernavn = 'bruger001'
Avatar billede ellebaek Nybegynder
28. december 2004 - 22:28 #6
det forstår jeg godt nok ikke...
Hmm..
den burde smide intCount bagefter..

prøv lige det her:


<% if mode = "billedupload" then
                 
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
                 
                 
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
counter = 1
'  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  ******
  intCount = mySmartUpload.Save("d:\web\localuser\prestmann.dk\public_html\images\")               

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt

felt = CStr("brugerImg" & counter)
SQL = "Update beskrivelse Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "
response.write SQL & "<br>"
      'oConn.Execute (SQL)
        counter = counter + 1
        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                       
                        %>

og så smid resultatet her igen..
Avatar billede pretsmann Nybegynder
28. december 2004 - 22:29 #7
Sorry jeg havde ikke fået det hele med

Update beskrivelse Set brugerImg1 = 'images\bruger001_1.gif' Where brugernavn = 'bruger001'
2 file(s) uploaded.
Avatar billede pretsmann Nybegynder
28. december 2004 - 22:42 #8
Så kommer

Update beskrivelse Set brugerImg = 'images\bruger001_1.gif' Where brugernavn = 'bruger001'

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/login_ejertest.asp, line 1035

line 1035 er:
SQL = "Update beskrivelse Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "
Avatar billede ellebaek Nybegynder
28. december 2004 - 22:44 #9
har du overskrevet hele upload koden med det jeg skrev før..?
Avatar billede pretsmann Nybegynder
28. december 2004 - 22:45 #10
Når billede uploades kommer det både til at ligge på serveren som bruger001_1.gif og billedets originale navn også???
Avatar billede pretsmann Nybegynder
28. december 2004 - 22:46 #11
ja jeg indsatte hele den sidste kode
Avatar billede ellebaek Nybegynder
28. december 2004 - 22:48 #12
<% if mode = "billedupload" then
               
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
               
               
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
counter = 1
'  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  ******

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt

felt = CStr("brugerImg" & counter)
SQL = "Update beskrivelse Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "
response.write SQL & "<br>"
      'oConn.Execute (SQL)
        counter = counter + 1
        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                     
                        %>

sådan her skulle den gerne kun oploade en fil..
Avatar billede pretsmann Nybegynder
28. december 2004 - 23:00 #13
Update beskrivelse Set brugerImg1 = 'images\bruger001_0.jpg' Where brugernavn = 'bruger001'
1 file(s) uploaded.

Men nu skrives der ikke sti i db eller???
Avatar billede ellebaek Nybegynder
28. december 2004 - 23:05 #14
nej...

men det gør den nu..

<% if mode = "billedupload" then
             
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
             
             
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
counter = 1
'  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  ******

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & intCount & "." & file.FileExt

felt = CStr("brugerImg" & counter)
SQL = "Update beskrivelse Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
        counter = counter + 1
        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                   
                        %>
Avatar billede pretsmann Nybegynder
28. december 2004 - 23:18 #15
YES det virker sgu...

Jeg ved godt jeg forlanger meget, meeen...
Kan det lade sig gøre at billede der uploades i formfelt 1 altid kommer til at hedde brugernavn_1.jpg/gif og stien skrives i db osv indtil billede 5?
Avatar billede ellebaek Nybegynder
28. december 2004 - 23:21 #16
ja da...
sådan her skal det se ud...

<% if mode = "billedupload" then
           
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
           
           
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
counter = 1
'  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  ******

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & counter & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & counter & "." & file.FileExt

felt = CStr("brugerImg" & counter)
SQL = "Update beskrivelse Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
       
        intCount = intCount + 1
      End If
  counter = counter + 1
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                 
                        %>
Avatar billede pretsmann Nybegynder
28. december 2004 - 23:39 #17
Jeg takker rigtig mange gange ellebaek... Du er en konge!!
Avatar billede pretsmann Nybegynder
28. december 2004 - 23:52 #18
Kan det lade sig gøre at sætte en fil max størrelse på og gøre brugeren opmærksom på at filen er for stor ;-)
Avatar billede ellebaek Nybegynder
28. december 2004 - 23:57 #19
jo...
det skulle jeg mene man kan...

du kan gøre sådan her mener jeg:


<% if mode = "billedupload" then
         
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_ejertest.asp?mode=login")
                        end if
         
         
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
counter = 1
'  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
  mySmartUpload.Upload

'  ******

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/feriebolig.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  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.SaveAs "d:\web\localuser\prestmann.dk\public_html\images\" & Session("brugernavn") & "_" & counter & "." & file.FileExt
filnavn = "images\" & Session("brugernavn") & "_" & counter & "." & file.FileExt

felt = CStr("brugerImg" & counter)
SQL = "Update beskrivelse Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
     
        intCount = intCount + 1
      End If
  counter = counter + 1
  Next

'  Display the number of files uploaded
'  ************************************
    If Err Then
      Response.Write("<b>Filen var for stor : </b>" '& Err.description)
  Else
  '  Display the number of files uploaded
  '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
  End If

'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
               
                        %>
Avatar billede pretsmann Nybegynder
01. januar 2005 - 20:44 #20
hmm når jeg indsætter dette får jeg flg. fejl:

aspSmartUpload.File error '80040451'

Size exceeded for this file : 'E:\images\temp\deepblue.jpg' (Error 1105)

/login_ejertest.asp, line 1050

line 1050 er
mySmartUpload.Upload
Avatar billede ellebaek Nybegynder
01. januar 2005 - 22:33 #21
det må så være fordi deepblue.jpg fylder mere end: 50000 byte...

Så kan du blot sætte det tal op til hvad brugeren nu skal kunne oploade...
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