Avatar billede m_fisker Nybegynder
22. november 2004 - 10:53 Der er 21 kommentarer og
1 løsning

ASP - Upload Profil-billede til mappe og MS Access?

Jeg det problem at jeg vil havde så at brugerne kan Upload et profil billede. så at billede navnet bliver lavet om til brugerens "id" og at det bliver gemt i en mappe (/images/) og kun billede navnet bliver gemt i MS Access database. "F.eks (13.jpg)"

Jeg har prøvet at leger med aspSmartUpload. 

Hvis der en guide eller noget andet.. så er det osse ok.
Avatar billede hiks Nybegynder
22. november 2004 - 18:23 #1
du kan bruge file.saveas og så navngive ud fra et udtræk du laver inden i din database - som svarer til id'et!

/hiks
Avatar billede hiks Nybegynder
22. november 2004 - 18:25 #2
Avatar billede m_fisker Nybegynder
23. november 2004 - 09:52 #3
Hey Hiks
Nu gemme den i mappe men den send ikke sti til databasen

<HTML>
<BODY BGCOLOR="white">



<H1>aspSmartUpload : Sample 4</H1>
<HR>
<%

  session.Timeout = 50
' set timeout in Minute
loginstatus = session("login")
loginname = session("Brugernavn")
BrugerID = session("BrugerID")
lvl = session("lvl")

'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim oRs
  Dim intCount
  intCount=0
  Session.LCID = 1030     
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******

  mySmartUpload.Upload
  mySmartUpload.AllowedFilesList = "jpeg,jpg"
  mySmartUpload.MaxFileSize = 300000
 

'  ******
  intCount = mySmartUpload.Save("C:\Inetpub\test\images\bruger\")                     

'  Connect to the DB
'  22:33 22-10-2004
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("_private/fdf.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 "c:\123\" & file.FileName

filnavn = "http://localhost/test/images/bruger/" & file.FileName

SQL = "UPDATE Brugere SET bild = '" & filnavn & "' WHERE BrugerID  = '" & Session("BrugerID") & "'"


        intCount = intCount + 1
      End If
  Next

  If Err Then 'her indsættes din håndtering af fejl
      Response.Write("<b>Wrong selection : </b>" & Err.description)
  Else
  '  Display the number of files uploaded
  '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
  End If

'  Display the number of files uploaded
'  ************************************
  response.Redirect "profil.asp"

'  Destruction
'  ***********

  oConn.Close

  Set oConn = Nothing
%>
</BODY>
</HTML>
Avatar billede m_fisker Nybegynder
23. november 2004 - 09:55 #4
Og den lukker alle filer igemmen.
Avatar billede m_fisker Nybegynder
23. november 2004 - 09:56 #5
og den gemmer ikke filen som bruger´s id (BrugerID)
Avatar billede hiks Nybegynder
23. november 2004 - 10:01 #6
ok - så skal du jo have fundet ud af hvilken bruger der er logget på. Har du det i en sessions variabel?

det skal du have fundet ud af. For derefter at have ændret:

Select Case File.FileExt
    Case "jpeg", "jpg"
        filnavn = Session("BrugerID") & ".jpg"
    Case "gif"
        filnavn = Session("BrugerID") & ".gif"
End Select

file.SaveAs "c:\123\" & filnavn

/hiks




- og så skal du have updateret brugeren i databasen:

SQL = "UPDATE Brugere SET bild = '" & filnavn & "' WHERE BrugerID  = '" & Session("BrugerID") & "'"
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:11 #7
hvad skal celle i databasen hede
Avatar billede hiks Nybegynder
23. november 2004 - 10:13 #8
det kommer an på din database - hvis du bruger den ovenfor så er det bild - men du kan jo bare kalde den billede og rette det i din sql.

/hiks
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:17 #9
er det de steder der heder filnavn. skal de laves om til billede??
Avatar billede hiks Nybegynder
23. november 2004 - 10:21 #10
nej filnavnet er bare "linket" til billedet - således at når du laver et udtræk fra din database så kan du skrive:

<img src=<%=rs("billede")%>

/hiks
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:26 #11
Men hvordan ved den for at den skal send billede.jpg hen til i databasen??

<HTML>
<BODY BGCOLOR="white">



<H1>aspSmartUpload : Sample 4</H1>
<HR>
<%

  session.Timeout = 50
' set timeout in Minute
loginstatus = session("login")
loginname = session("Brugernavn")
BrugerID = session("BrugerID")
lvl = session("lvl")

'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim oRs
  Dim intCount
  intCount=0
  Session.LCID = 1030     
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******

  mySmartUpload.Upload
  mySmartUpload.AllowedFilesList = "jpeg,jpg"
  mySmartUpload.MaxFileSize = 300000
 

'  ******
                   

'  Connect to the DB
'  22:33 22-10-2004
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("_private/fdf.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
      '  **********************************

Select Case File.FileExt
    Case "jpeg", "jpg"
        filnavn = Session("BrugerID") & ".jpg"
    Case "gif"
        filnavn = Session("BrugerID") & ".gif"
End Select

file.SaveAs "C:\Inetpub\test\images\bruger\" & filnavn

filnavnet = "http://localhost/test/images/bruger/" & file.FileName

SQL = "UPDATE Brugere SET bild = '" & filnavnet & "' WHERE BrugerID  = '" & Session("BrugerID") & "'"


        intCount = intCount + 1
      End If
  Next

  If Err Then 'her indsættes din håndtering af fejl
      Response.Write("<b>Wrong selection : </b>" & Err.description)
  Else
  '  Display the number of files uploaded
  '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
  End If

'  Display the number of files uploaded
'  ************************************
  response.Redirect "profil.asp"

'  Destruction
'  ***********

  oConn.Close

  Set oConn = Nothing
%>
</BODY>
</HTML>
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:29 #12
Skal den ikke vide hvilken "celle (Billede)" "billede-navnet (3.jpg)" skal sends til
Avatar billede hiks Nybegynder
23. november 2004 - 10:35 #13
jow men det er jo også det du gør:

Select Case File.FileExt
    Case "jpeg", "jpg"
        filnavn = Session("BrugerID") & ".jpg"
    Case "gif"
        filnavn = Session("BrugerID") & ".gif"
End Select

file.SaveAs "C:\Inetpub\test\images\bruger\" & filnavn

filnavn = "http://localhost/test/images/bruger/" & filnavn

SQL = "UPDATE Brugere SET billede = '" & filnavn & "' WHERE BrugerID  = '" & Session("BrugerID") & "'"

'HER SKAL DU UDFØRE OVENSTÅENDE UPDATE AF DIT RECORDSÆT ELLERS FÅR DU INGENTING IND I DATABASE.
'DU MANGLER EN:
oConn.Execute(SQL)

/hiks
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:37 #14
ups..
det med celle var min fejl.. jeg havde ikke fået min Caffe :)

men nu for jeg denne fejl

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/test/upload.asp, line 71

line 71 = oConn.Execute(SQL)
Avatar billede hiks Nybegynder
23. november 2004 - 10:39 #15
tjek dine felt-typer igennem hhv. brugerid og billede. billede er en tekst og du forsøger også at have brugerid'et som tekst pt pga '.

/hiks
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:42 #16
Min BrugerID køre som "Autonummerering"
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:43 #17
Og billede er "Tekst"
Avatar billede hiks Nybegynder
23. november 2004 - 10:44 #18
SQL = "UPDATE Brugere SET billede = '" & filnavn & "' WHERE BrugerID  = " & Session("BrugerID") & ";"
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:44 #19
det er fordi at jeg vil putte billede-sti ind hver bruger profil
Avatar billede hiks Nybegynder
23. november 2004 - 10:45 #20
det gør da heller ikke noget - det er jo en tekst så det burde den sagtens kunne udføre!

/hiks
Avatar billede m_fisker Nybegynder
23. november 2004 - 10:46 #21
Nu virker det..
1000 tak..
send du bare et svar
Avatar billede hiks Nybegynder
23. november 2004 - 10:48 #22
svar! :o)

/hiks
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