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 :)
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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
17. oktober 2005 - 20:52
#2
Udkommentere?
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.
17. oktober 2005 - 20:58
#4
Så siger den: Update Brugere SET Billede = 'Ja'
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...
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?
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...
17. oktober 2005 - 21:13
#8
Jeg mener det er i formatet: objUpload.form("Sti") objUpload.form("Beskrivelse")
17. oktober 2005 - 21:13
#9
Og det er noget du kan hjælpe med eller?
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 %>
17. oktober 2005 - 21:18
#11
Fungerer ikke :s
17. oktober 2005 - 21:19
#12
Hov.. har ikke set den nye kode 2 sec,
17. oktober 2005 - 21:20
#13
Ja, det var jo ikke for at gøre den smukkere jeg pastede den tilbage... :)
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
17. oktober 2005 - 21:27
#15
Hvordan ser din formular ud?
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>
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 %>
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 ;)
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
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 :)
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?
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... ;-)
17. oktober 2005 - 22:04
#23
Hah ;) Jeg sir´tak ;)
17. oktober 2005 - 22:06
#24
Velbekomme - og tak for point :)
Kurser inden for grundlæggende programmering