Avatar billede jerving Nybegynder
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
Avatar billede eagleeye Praktikant
03. oktober 2002 - 19:43 #1
Prøv med denne if:

  If isEmpty(Pic) Then


I sted for denne:
    If Pic is nothing Then
Avatar billede jerving Nybegynder
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
Avatar billede eagleeye Praktikant
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
Avatar billede jerving Nybegynder
03. oktober 2002 - 20:16 #4
He, he, så rykke problemet sig en gang ned i rækken:

Object required: 'Upload.Files(...)'

;o)
Avatar billede eagleeye Praktikant
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")
Avatar billede jerving Nybegynder
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??
Avatar billede eagleeye Praktikant
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
Avatar billede jerving Nybegynder
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...
Avatar billede eagleeye Praktikant
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.
Avatar billede jerving Nybegynder
03. oktober 2002 - 20:48 #10
Object required: '[object]'
Avatar billede eagleeye Praktikant
03. oktober 2002 - 20:49 #11
Har du Option explict i toppen af koden?
Avatar billede jerving Nybegynder
03. oktober 2002 - 20:52 #12
Undskyld jeg spørger men hvad er det?
Avatar billede eagleeye Praktikant
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.
Avatar billede eagleeye Praktikant
03. oktober 2002 - 21:05 #14
Prøv at rette denne:

sti = Server.MapPath("../images/") & "\"

til:

sti = Server.MapPath("../images/")
Avatar billede jerving Nybegynder
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.....
Avatar billede eagleeye Praktikant
03. oktober 2002 - 21:14 #16
Pøv at flytte denne :

Filnavn = Upload.Files("Image1").ExtractFilename

Op lige efter Upload.Save
Avatar billede jerving Nybegynder
03. oktober 2002 - 21:24 #17
den laver samme fejl? - fatter det virkelig ikke
Avatar billede excession Nybegynder
03. oktober 2002 - 21:37 #18
når jeg bruger AspUPLOAD så henter jeg filnavnet ved at bruge File.Filename
Avatar billede jerving Nybegynder
03. oktober 2002 - 21:42 #19
Er du ikke flink at vise mig et eksempel excession ?
Avatar billede excession Nybegynder
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
            .....
Avatar billede jerving Nybegynder
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?
Avatar billede jerving Nybegynder
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?
Avatar billede excession Nybegynder
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
Avatar billede excession Nybegynder
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
Avatar billede excession Nybegynder
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
Avatar billede jerving Nybegynder
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)
Avatar billede excession Nybegynder
04. oktober 2002 - 14:22 #27
er det én post i tabellen du prøver at opdatere eller flere uafhængige poster?
Avatar billede jerving Nybegynder
04. oktober 2002 - 14:53 #28
Flere poster ex.: Image1, Image2, Image3, Image 4... Som alle skal registreres under samme ID
Avatar billede jerving Nybegynder
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.
Avatar billede excession Nybegynder
04. oktober 2002 - 15:12 #30
ok.. det er flere felter (kolonner) i samme post og ikke flere poster (rækker)
Avatar billede jerving Nybegynder
04. oktober 2002 - 15:13 #31
Korrekt
Avatar billede jerving Nybegynder
05. oktober 2002 - 03:47 #32
Nå.., Jeg er gået til en anden løsning... Dumme popup viduer ...Suk

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