03. oktober 2002 - 19:36
Der er
31 kommentarer og 1 løsning
Problemer med AspUpload og database
Hej, Jeg ønsker at updatere en record i min access db med nogle textfelter og et billede felt. Upload af filen til en ønsket mappe opdatering af textfelter funger fint, men jeg kan ikke få overført filnavnet til databasen ef en eller ande grund. Er der nogen der kan fortælle mig hvor jer har dummet mig? Kode: Set Upload = Server.CreateObject("Persits.Upload.1") Upload.OverwriteFiles = False sti = Server.MapPath("../images/") & "\" Upload.Save sti ArticleName = Upload.Form("ArticleName") Headline = Upload.Form("Headline") Article = Upload.Form("Article") for each file in Upload.Files Pic = file.ExtractFileName Next Set Pic = Upload.Files("Image1") If Pic is nothing Then Pic1 = "" Else Pic1 = Pic.ExtractFileName End if Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("../db/databasen.mdb") Conn.Open DSN SQL = "UPDATE Articles SET ArticleName = '" & ArticleName & "', HeadLine = '" & HeadLine & "', Article ='" & Article & "',Image1 ='../images/" & Pic1 & "' WHERE (ID = " & Request.QueryString("id") & ")" Conn.Execute(SQL) Med venlig hilsen Jerving
Annonceindlæg fra Pax8
03. oktober 2002 - 19:43
#1
Prøv med denne if: If isEmpty(Pic) Then I sted for denne: If Pic is nothing Then
03. oktober 2002 - 20:05
#2
Hmmm, så får jeg en "Object required: 'Pic' "-fejl i linie 182: Set Pic = Upload.Files("Image1") If isEmpty(Pic) Then Pic1 = "" Else 'Linie 182: Pic1 = Pic.ExtractFileName End if -Fatter det ikke helt
03. oktober 2002 - 20:09
#3
Den vil havde Pic defineret som et object for at den kender hvilke functioner den kan kalde.... hvad hvis du retter det til: If isEmpty(Upload.Files("Image1")) Then Pic1 = "" Else Pic1 = Upload.Files("Image1").ExtractFileName End if
03. oktober 2002 - 20:16
#4
He, he, så rykke problemet sig en gang ned i rækken: Object required: 'Upload.Files(...)' ;o)
03. oktober 2002 - 20:19
#5
Hvor mange filer er det for du har jo lavet denne for sætning: for each file in Upload.Files Pic = file.ExtractFileName Next Så denne linie efter behøves ikke.: Set Pic = Upload.Files("Image1")
03. oktober 2002 - 20:28
#6
Hov, jeg startede med at lave den så den skal kunne fungere til 4 filer, men jeg sidder jo kun og tester det med 1. Men fjerner jer linien: Set Pic = Upload.Files("Image1") ..er fungerer det stadig ikke??
03. oktober 2002 - 20:34
#7
hedder feltet man indtaster i Image1 ?? så bør man kunne finde filnanvet med: Filnavn = Upload.Files("Image1").ExtractFilename
03. oktober 2002 - 20:42
#8
Ja, det ville jeg også mene, men den extracter ikke filnavnet - men sætter blot ../images/ ind i databasen? Jeg har testet det med flg.: Set Pic = Upload.Files("Image1") If Pic is nothing Then Filnavn = "" Else Filnavn = Upload.Files("Image1").ExtractFilename End if Og Image1 ='../images/" & Filnavn & i UPDATE sætningen. Fatter der slet ikke...
03. oktober 2002 - 20:45
#9
Hvad skriver den hvis du dropper if sætningen .. Så det bare er denne: Filnavn = Upload.Files("Image1").ExtractFilename Og Image1 ='../images/" & Filnavn & i UPDATE sætningen.
03. oktober 2002 - 20:48
#10
Object required: '[object]'
03. oktober 2002 - 20:49
#11
Har du Option explict i toppen af koden?
03. oktober 2002 - 20:52
#12
Undskyld jeg spørger men hvad er det?
03. oktober 2002 - 20:54
#13
Det er en sætnign man kan skrive så man skal definere alle de variable man bruger, men det har du så nok ikke.
03. oktober 2002 - 21:05
#14
Prøv at rette denne: sti = Server.MapPath("../images/") & "\" til: sti = Server.MapPath("../images/")
03. oktober 2002 - 21:13
#15
Samme problem: Object required: '[object]' /admin/default.asp, line 171 Det ser således ud nu: sti = Server.MapPath("../images/") Upload.Save sti ArticleName = Upload.Form("ArticleName") Headline = Upload.Form("Headline") Article = Upload.Form("Article") Filnavn = Upload.Files("Image1").ExtractFilename Set Conn.....
03. oktober 2002 - 21:14
#16
Pøv at flytte denne : Filnavn = Upload.Files("Image1").ExtractFilename Op lige efter Upload.Save
03. oktober 2002 - 21:24
#17
den laver samme fejl? - fatter det virkelig ikke
03. oktober 2002 - 21:37
#18
når jeg bruger AspUPLOAD så henter jeg filnavnet ved at bruge File.Filename
03. oktober 2002 - 21:42
#19
Er du ikke flink at vise mig et eksempel excession ?
03. oktober 2002 - 21:49
#20
..... virtPath = "billeder\" & Upload.Form("ID") filepath = Server.MapPath(virtPath) For Each File in Upload.Files ' her gemer jeg filen under stien filepath File.SaveAs filepath & "\" & File.FileName virtualPath = virtPath & "\" If File.Size < 100000 Then .....
03. oktober 2002 - 21:56
#21
Jeg har ingen problemer med at gemme filen på den udvalgte sti. Problemet er at få overført filnavnet til min db. med sætningen: Image1 ='../images/" & Filnavn & i UPDATE ... Hvordan går du det?
03. oktober 2002 - 22:11
#22
Nu virkede det su med det jeg havde i forvejen blot med: for each file in Upload.Files Pic = file.ExtractFileName Next og i UPDATE: Image1 ='../images/" & Pic & "' WHERE (ID = " & Request.QueryString("id") & ")" Men hvad fanden gør jeg så hvis jeg har fire felter i min form, der skal kunne uploade filer?
03. oktober 2002 - 22:34
#23
jeg forstår ikke helt.. du prøver at uploade flere filer ad gangen? For Each File in Upload.Files Pic = File.FileName .... eller File.ExtractFileName SQL = "INSERT....eller UPDATE..." Next
03. oktober 2002 - 22:35
#24
For Each File in Upload.Files Pic = File.FileName .... eller File.ExtractFileName SQL = "INSERT....eller UPDATE..." conn.execute(SQL) Next
04. oktober 2002 - 00:58
#25
jeg gør det på den måde at jeg har en 5 - 6 IF sætninger der checker om filen er som den skal være. Så kommer den med en tilbagemelding: For Each File in Upload.Files checker om den er for stor. : strAllFiles = strAllFiles & File.Name & ": " & File.FileName & " " & FormatNumber((File.Size/1000),1) &" kb er for stor til at gemme<BR>" check om det er en JPG fil strAllFiles = strAllFiles & File.Name & ": " & File.FileName & " " & FormatNumber((File.Size/1000),1) &" kb er ikke en JPG fil<BR>" check om den findes i forvejen strAllFiles = strAllFiles & File.Name & ": " & File.FileName & " " & FormatNumber((File.Size/1000),1) &" kb findes allerede<BR>" check om der overhovedet var en fil som kunne uploades strAllFiles = strAllFiles & File.Name & ": " & File.FileName & " " & FormatNumber((File.Size/1000),1) &" kb ikke en fil<BR>" hvis alt var i orden så gem filen på harddisk og DB. Giv besked om at filen var ok og blev gemt strAllFiles = strAllFiles & File.Name & ": " & File.FileName & " " & FormatNumber((File.Size/1000),1) &" kb var OK! Filen blev gemt<BR>" SQL = "INSERT....eller UPDATE..." conn.execute(SQL) NEXT og til sidst udskriver strAllFiles
04. oktober 2002 - 12:45
#26
Hej igen, Jeg kan godt se at jeg har formuleret mit spørgsmå lidt kludret. Mit problem: Jeg har ingen problemer med at uploade og udskrive udskrive filnavnenene med eksempelvis: for each file in Upload.Files Pic = file.ExtractFileName Response.Write Pic & "<br>" Min viden halter derimod når jeg skal konstruere min UPDATE sætning. Jeg har indtil nu lavet den som følger: SQL = "UPDATE Articles SET ArticleName = '" & ArticleName & "', HeadLine = '" & HeadLine & "', Article ='" & Article & "',_Date ='" & FormatDateTime(Now, vbLongDate) & " " & FormatDateTime(Now, vbShortTime) & "',Image1 ='../images/" & pic & "' WHERE (ID = " & Request.QueryString("id") & ")" Mit problem er at dette virker glimrende med en billedfil, da de så i "',Image1 ='../images/" & pic & " indsætter stien og Pic - filnavnet i feltet Image1 i min db. Men hvordan skriver jeg sætningen hvis jeg derefter vil update de næste felter i tabllen med Image2 ='../images/ & variabel osv.? Jeg må vel lave noget der i 'for each file in Upload.Files'-sætningen kan adskille filnavnene fra hinanden og give dem variabelnavne, så jeg kan kalde variablerne igen nede i UPDATE sætningen? (Jeg beklager hvis mine spørgsmål er helt skudt i låget, men jeg er ny i ASP)
04. oktober 2002 - 14:22
#27
er det én post i tabellen du prøver at opdatere eller flere uafhængige poster?
04. oktober 2002 - 14:53
#28
Flere poster ex.: Image1, Image2, Image3, Image 4... Som alle skal registreres under samme ID
04. oktober 2002 - 15:00
#29
Altså forstå mig ret, tabellen hedder Articles. Her er kolonnerne: ID(nøglen), ArticleName, Headline, Article, _Date, Image1, Image2, Image3, Image4 I disse kolonner vil jeg gerne give mulighed for at kunne opdatere.
04. oktober 2002 - 15:12
#30
ok.. det er flere felter (kolonner) i samme post og ikke flere poster (rækker)
04. oktober 2002 - 15:13
#31
Korrekt
05. oktober 2002 - 03:47
#32
Nå.., Jeg er gået til en anden løsning... Dumme popup viduer ...Suk Lukker
Kurser inden for grundlæggende programmering