Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 20:37 Der er 23 kommentarer og
1 løsning

Hvor er fejlen? Den opdaterer men indsætter ikke

Hejsa..
Nogle der kan forklarer mig hvorfor denne kode:

<%
if request.querystring("Side") = "Upload" then

strFolder = "Filer/"

Dim objUpload ' Definer en variabel til objektet

Set objUpload = Server.CreateObject("Persits.Upload")

On Error Resume Next

Dim strUploadPath

Dim intFileCount

intFileCount = objUpload.Save(Server.MapPath(strFolder))

If Err.Number = 8 Then
  Response.Write "Filen er for stor. Prøv igen."
Else

If Err <> 0 Then
    Response.Write "Der opstod en fejl : " & Err.Description
Else
   
Brugernavn = "Kristian"
Sti = Request.Form("Sti")
Beskrivelse = Request.Form("Beskrivelse")
Billede = "Ja"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Database.mdb")

strSQL = "INSERT INTO Billeder (Brugernavn,Sti,Beskrivelse) VALUES('" & Brugernavn & "','" & Sti & "','" & Beskrivelse & "')"
Conn.Execute(strSQL)

strSQL = "Update Brugere SET"
strSQL = strSQL & " Billede = '" & Billede & "'"
strSQL = strSQL & " WHERE Brugernavn = '" & Brugernavn & "'"
Conn.Execute(strSQL)

Conn.Close
Set conn = Nothing
Set rs = Nothing

On Error Goto 0
Set objUpload = Nothing

Response.Redirect("Index.asp?Side=Uploadet")

End if
End if

End if
%>


Helt uden problemer uploader og opdaterer men den vil ikke indsætte i databasen?
Den melder ikke fejl den går bare videre til Index.asp?Side=Uploadet..

Hjælp :)
Avatar billede softspot Forsker
17. oktober 2005 - 20:42 #1
Prøv at udkommentere denne linie, så kan det være du får en bedre indikation af hvad problemet er:

On Error Resume Next
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 20:52 #2
Udkommentere?
Avatar billede trekkies Juniormester
17. oktober 2005 - 20:53 #3
Indsæt denne sætning:
Response.Write strSQL

Lige imellem:
strSQL = strSQL & " WHERE Brugernavn = '" & Brugernavn & "'"
Conn.Execute(strSQL)

Sæt ' foran:
Conn.Execute(strSQL)

Conn.Close
Set conn = Nothing
Set rs = Nothing
Response.Redirect("Index.asp?Side=Uploadet")

Se hvad den siger.
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 20:58 #4
Så siger den:
Update Brugere SET Billede = 'Ja'
Avatar billede softspot Forsker
17. oktober 2005 - 21:02 #5
Ja, altså:

'On Error Resume Next

Du ignorerer jo fejl på den måde og får dermed ikke at vide hvilken linie fejlen opstår...
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:07 #6
Request object error 'ASP 0207 : 80004005'

Cannot use Request.Form

/T1E2S3T/Profilbillede/Index.asp, line 85

Cannot use Request.Form collection after calling BinaryRead.


Pis.. Har i så forslag til hvordan man ellers kunne gøre det? Min idé var jo at så når den skulle vises kunne man bare trække ud fra brugeren også lave en <img src="<%=Rs("Sti")%>"> men det ka´man jo så ik´nu..

Har i idéer?
Avatar billede softspot Forsker
17. oktober 2005 - 21:12 #7
Ja, der kan du bare se! :D

Du skal bruge Persits.Upload's form-collection til at trække felternes værdi ud med...
Avatar billede softspot Forsker
17. oktober 2005 - 21:13 #8
Jeg mener det er i formatet:

objUpload.form("Sti")
objUpload.form("Beskrivelse")
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:13 #9
Og det er noget du kan hjælpe med eller?
Avatar billede softspot Forsker
17. oktober 2005 - 21:17 #10
Ja, der er nu, såvidt jeg kan se, ikke meget mere i det end det jeg skrev lige før:

<%
if request.querystring("Side") = "Upload" then
  strFolder = "Filer/"
  Dim objUpload ' Definer en variabel til objektet
  Set objUpload = Server.CreateObject("Persits.Upload")

  On Error Resume Next
  Dim strUploadPath
  Dim intFileCount

  intFileCount = objUpload.Save(Server.MapPath(strFolder))

  If Err.Number = 8 Then
    Response.Write "Filen er for stor. Prøv igen."

  Else
    If Err <> 0 Then
      Response.Write "Der opstod en fejl : " & Err.Description

    Else
      Brugernavn = "Kristian"
      Sti = objUpload.Form("Sti")
      Beskrivelse = objUpload.Form("Beskrivelse")
      Billede = "Ja"

      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Database.mdb")

      strSQL = "INSERT INTO Billeder (Brugernavn,Sti,Beskrivelse) VALUES('" & Brugernavn & "','" & Sti & "','" & Beskrivelse & "')"
      Conn.Execute(strSQL)

      strSQL = "Update Brugere SET"
      strSQL = strSQL & " Billede = '" & Billede & "'"
      strSQL = strSQL & " WHERE Brugernavn = '" & Brugernavn & "'"
      Conn.Execute(strSQL)

      Conn.Close
      Set conn = Nothing
      Set rs = Nothing

      On Error Goto 0
      Set objUpload = Nothing

      Response.Redirect("Index.asp?Side=Uploadet")

    End if
  End if
End if
%>
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:18 #11
Fungerer ikke :s
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:19 #12
Hov.. har ikke set den nye kode 2 sec,
Avatar billede softspot Forsker
17. oktober 2005 - 21:20 #13
Ja, det var jo ikke for at gøre den smukkere jeg pastede den tilbage... :)
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:22 #14
Kommentar: softspot
17/10-2005 21:17:46

Fungerer desværre ikke..
Den kommer med fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Field 'Billeder.Sti' cannot be a zero-length string.

/T1E2S3T/Profilbillede/Index.asp, line 88
Avatar billede softspot Forsker
17. oktober 2005 - 21:27 #15
Hvordan ser din formular ud?
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:28 #16
<form action="Index.asp?Side=Upload" method="Post" enctype="Multipart/form-data">

<b>Profil Billede</b><br>
Sti:
<br>
<input type="File" size="40" name="Sti">
<br>
Beskrivelse:
<br>
<textarea type="text" name="Beskrivelse" rows="8" cols="27"></textarea>
<br><br>
<input type="submit" value="Upload..">

</form>
Avatar billede softspot Forsker
17. oktober 2005 - 21:34 #17
Ja, det betyder jo at sti er en egenskab på file-feltet og ikke som antaget et selvstændigt felt. Derfor skal du så hente stien fra Files-collection i stedet for form-collection. Altså sådan her:

<%
if request.querystring("Side") = "Upload" then
  strFolder = "Filer/"
  Dim objUpload ' Definer en variabel til objektet
  Set objUpload = Server.CreateObject("Persits.Upload")

  On Error Resume Next
  Dim strUploadPath
  Dim intFileCount

  intFileCount = objUpload.Save(Server.MapPath(strFolder))

  If Err.Number = 8 Then
    Response.Write "Filen er for stor. Prøv igen."

  Else
    If Err <> 0 Then
      Response.Write "Der opstod en fejl : " & Err.Description

    Else
      Brugernavn = "Kristian"
      Sti = objUpload.Files("Sti").Path
      Beskrivelse = objUpload.Form("Beskrivelse")
      Billede = "Ja"

      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Database.mdb")

      strSQL = "INSERT INTO Billeder (Brugernavn,Sti,Beskrivelse) VALUES('" & Brugernavn & "','" & Sti & "','" & Beskrivelse & "')"
      Conn.Execute(strSQL)

      strSQL = "Update Brugere SET"
      strSQL = strSQL & " Billede = '" & Billede & "'"
      strSQL = strSQL & " WHERE Brugernavn = '" & Brugernavn & "'"
      Conn.Execute(strSQL)

      Conn.Close
      Set conn = Nothing
      Set rs = Nothing

      On Error Goto 0
      Set objUpload = Nothing

      Response.Redirect("Index.asp?Side=Uploadet")

    End if
  End if
End if
%>
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:38 #18
Hmm..
Det virker ja :)

Men nu får jeg lidt problemer når det skal trækkes ud for det bliver smidt ind sådan:
c:\webs\talkactive\web57509\hjemmeskoen.dk\T1E2S3T\Profilbillede\Filer\Kristian.JPG

Så er det ikke muligt og måske lave koden om eller skrive et eller andet så man kan se billedet når det skal trækkes ud?
For ellers vil det jo bare komme til at stå sådan:
<img src="c:\webs\talkactive\web57509\hjemmeskoen.dk\T1E2S3T\Profilbillede\Filer\Kristian.JPG">

Og det giver ik´specielt meget billede ;)
Avatar billede softspot Forsker
17. oktober 2005 - 21:44 #19
Jamen, så skal du nok over i noget med at sammensætte den virtuelle sti. Noget i stil med dette:

Sti = strFolder & objUpload.Files("Sti").FileName
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:49 #20
Så virker det sgu..
Mange tak for hjælpen :)

Lig et svar og du skal få dine velfortjente points :)
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 21:56 #21
Jo jeg har lige et spørgsmål til..
Hvordan kan jeg tjekke om det virkelig er et billede? Altså om det er JPG/JPEG eller GIF?
Avatar billede softspot Forsker
17. oktober 2005 - 22:02 #22
objUpload.Files("sti").ImageType indeholder en tekst der angiver hvilken type det er...

Må jeg have lov til at anbefale lidt surfing: http://www.aspupload.com/object_file.html

Man finder meget godt på indernæddet... ;-)
Avatar billede hjemmeskoen Nybegynder
17. oktober 2005 - 22:04 #23
Hah ;)
Jeg sir´tak ;)
Avatar billede softspot Forsker
17. oktober 2005 - 22:06 #24
Velbekomme - og tak for point :)
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