Avatar billede Slettet bruger
30. januar 2011 - 21:37 Der er 6 kommentarer og
1 løsning

Upload efter skift fra access til mysql

Jeg har skiftet fra access til phpMYsql og det er ikke uden problemer, desværre. Ved opload af foto har jeg tidligere brugt nedenstående kode - hentet et eller andet sted fra og rettet til - men den virker ikke ved brug af Mysql. De 2 felter i databasen er henholdsvis filename=varchar(50) og file=binary(50), og jeg er i tvivl om det er koden herunder eller felterne i db som er forkerte. Er det nogen eksperter som har en løsning?

mvh. rwj

<%

On Error Resume Next
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.AllowedFilesList = "jpg,gif"
  mySmartUpload.MaxFileSize = 50000
'  Upload
'  ******
  mySmartUpload.Upload


%><!--#include file="conn.asp"--><%

'  Open a recordset
'  ****************
strSQL = "SELECT FILENAME,FILE,brugernavn,ID FROM bruger WHERE brugernavn = '" & brugernavn & "'"


  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.Update
   
        file.FileToField oRs.Fields("FILE")
        oRs("FILENAME") = brugernavn &  file.FileName
        oRs.Update
        file.SaveAs("upload/" &  brugernavn  & file.filename)

   
          End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.")
 
'  Destruction
'  ***********
  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing

If Err Then
      Response.Write("fejl" )
else
    Response.write ("ok")
   
end if
   
response.redirect("login.asp?mode=" & ("own_profile") & "&info=" & ("foto_skiftet") &  "")



%>
Avatar billede arne_v Ekspert
30. januar 2011 - 23:35 #1
binary(50) ??
Avatar billede Slettet bruger
31. januar 2011 - 08:20 #2
Jeg har prøvet flere løsning på db og binary(50) var blot en af dem. Er ikke klar over hvad den post egentlig er til, hvilket også er årsagen til mit spørgsmål, nemlig om det er koden eller db som gør at jeg ikke kan uplade foto lænngere. Har du en idé om hvor problemet ligger?
mvh. rwj
Avatar billede Slettet bruger
31. januar 2011 - 11:09 #3
Måske var jeg ikke uddybende nok i min første beskivelse, men sagen er den, at i access er filename=tekst og file=OLE-objekt, og det har jeg forsøgt at gøre ditto i mysql, men uden held.

Jeg undrer mig samtidig over feltet file i access ikke bliver brugt, hvilket vel forklares ved, at foto gemmes i filen upload, men sletter jeg feltet, virker min kode ikke.

Nogen som har et løsning?
Avatar billede arne_v Ekspert
01. februar 2011 - 03:57 #4
Jeg ville prøve med BLOB fremfor BINARY(50)
Avatar billede arne_v Ekspert
01. februar 2011 - 03:58 #5
Bruger du en nyere MySQL ODBC?

De gamle har en del bugs!
Avatar billede Slettet bruger
01. februar 2011 - 08:55 #6
Db er under web10 og hedder MySQL klientversion 5.1.51 og tegnsæt er MySQL Tegnsæt: UTF-8 Unicode (utf8)
Jeg har efterfølgende prøvet om feltet FILE som er et Ole-Objekt i access db overhovedet bruges, og det gør det åbenbart ikke, for foto gemmes jo i mappe upload, og det er kun filnavnet som skal gemmes i db, og derfor har jeg ændret linien

strSQL = "SELECT FILENAME,FILE,brugernavn,ID FROM bruger WHERE brugernavn = '" & brugernavn & "'"

til

strSQL = "SELECT FILENAME,brugernavn,ID FROM bruger WHERE brugernavn = '" & brugernavn & "'"

og det gamle scripts fungere fortsat ok i access.

Derfor er feltet file i MySql db åbenbart overflødigt, men jeg kan ikke komme videre.
Avatar billede Slettet bruger
14. maj 2011 - 13:24 #7
lukker
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