Avatar billede sesam Nybegynder
02. juli 2001 - 15:57 Der er 12 kommentarer og
2 løsninger

Upload billede og data

Dette script bruger jeg til at uploade billeder og dets sti til en data base. Kan det udbygges så det også kan opdatere databasen med data altså tekst.

min form ser sådan her ud:


------------------
<HTML>
<BODY BGCOLOR=\"#FFFFFF\">

    <FORM METHOD=\"POST\" ENCTYPE=\"multipart/form-data\" ACTION=\"Upload2.asp\">
        <INPUT TYPE=FILE SIZE=60 NAME=\"FILE1\"><BR>
        <INPUT TYPE=SUBMIT VALUE=\"Upload!\">
    </FORM>

</BODY>
</HTML>

Mit script:
--------------------------
<%

set conn = Server.CreateObject(\"ADODB.Connection\")
Session(\"MyConn\") = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"varer.mdb\")

    Set Upload = Server.CreateObject(\"Persits.Upload.1\")
      Upload.OverwriteFiles = false
      Upload.SetMaxSize 300000, True
      Upload.SaveVirtual (\"/\")
   
    For Each File in Upload.Files
   
        File.ToDatabase Session(\"MyConn\"), \"insert into varer(images) \" &_
        \"values(\'\" & File.ExtractFileName & \"\')\"
        if Err <> 0 Then
          Response.Write headerfont & \"<br>Der er sket en fejl! : \" & Err.Description
       
    Else

          Response.Write headerfont & \"<br>Tilføjet...</strong></font>\"
   
    End If
      Next
%>
Avatar billede keysersoze Ekspert
02. juli 2001 - 16:02 #1
bare omskriv det så det passer til dit behov...

<%

set conn = Server.CreateObject(\"ADODB.Connection\")

   
    Set Upload = Server.CreateObject(\"Persits.Upload.1\")
    Upload.OverwriteFiles = false
      Upload.SetMaxSize 300000, True
      Upload.SaveVirtual (\"/images\")
      set persistfil_billede = upload.files(\"billede\")   

Tekst = upload.form(\"Tekst\")
Tekst = Replace(Tekst, \"\'\", \"\'\'\")

if persistfil_billede is nothing then

conn.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../db.mdb\")

    conn.Execute(\"insert into artikler(navn, overskrift, kategori, nr, tekst) \" &_
      \"values(\'\" & upload.form(\"navn\") & \"\', \'\" & upload.form(\"overskrift\") & \"\', \'\" & upload.form(\"kategori\") & \"\', \'\" & upload.form(\"nr\") & \"\', \'\" & tekst & \"\')\")
    if Err <> 0 Then
          Response.Write headerfont & \"<br>Der er sket en fejl! : \" & Err.Description
    Else
          Response.Write headerfont & \"<br>Tilføjet...</strong></font>\"
    End If
    conn.Close
    set conn = nothing
   
else

MyConn = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../db.mdb\")   

    For Each File in Upload.Files
   
        File.ToDatabase MyConn, \"insert into artikler(billede, navn, overskrift, kategori, nr, tekst) \" &_
        \"values(\'\" & File.ExtractFileName & \"\', \'\" & upload.form(\"navn\") & \"\', \'\" & upload.form(\"overskrift\") & \"\', \'\" & upload.form(\"kategori\") & \"\', \'\" & upload.form(\"nr\") & \"\', \'\" & tekst & \"\')\"
        if Err <> 0 Then
          Response.Write headerfont & \"<br>Der er sket en fejl! : \" & Err.Description
    Else
          Response.Write headerfont & \"<br>Tilføjet...</strong></font>\"
    End If
    Next
   
end if

%>
Avatar billede sesam Nybegynder
02. juli 2001 - 16:09 #2
Den form jeg laver feks:
<FORM METHOD=\"POST\" ENCTYPE=\"multipart/form-data\" ACTION=\"Upload2.asp\">
        <INPUT TYPE=FILE SIZE=60 NAME=\"FILE1\">
<INPUT TYPE=text SIZE=60 NAME=\"Beskrivelse\"><BR>
        <INPUT TYPE=SUBMIT VALUE=\"Upload!\">
    </FORM>
Hvordan får jeg scriptet til at sætte det ind i database der hvor Beskrivelsen skal være?
Avatar billede keysersoze Ekspert
02. juli 2001 - 16:19 #3
ved at bruge ovenstående - bare omskrevet...

hvad er det du ikke forstår ved det?
Avatar billede sesam Nybegynder
02. juli 2001 - 16:40 #4
er det dette jeg skal ændre for at få den til at sætte data ind de rigtige steder?
Avatar billede keysersoze Ekspert
02. juli 2001 - 16:56 #5
det jeg postede virker perfekt - men den arbejder bare med flere felter... tager du en kopi af det og ændre navne og antal så det passer dit behov er der ingen problemer med det...
Avatar billede sesam Nybegynder
02. juli 2001 - 17:02 #6
Hvad betyder der her?

---------------
Tekst = upload.form(\"Tekst\")
Tekst = Replace(Tekst, \"\'\", \"\'\'\")

if persistfil_billede is nothing then
Avatar billede sesam Nybegynder
02. juli 2001 - 17:07 #7
Nu får jeg sådan en fejl:


Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e14\'

[Microsoft][ODBC Microsoft Access-driver] Antallet af forespørgselsværdier og destinationsfelter er ikke det samme.

/ep/Uploadmere.asp, linje 19
Avatar billede keysersoze Ekspert
02. juli 2001 - 17:09 #8
1. laver en variabel indholde indholdet fra form-feltet tekst
2. udbytter \' med \'\' hvis det findes da der eller vil opstår problemer
3. hvis der ikke er noget billede så...
Avatar billede sesam Nybegynder
02. juli 2001 - 17:14 #9
Jeg forstår ikke helt skal jeg ænder dette her:
Tekst = upload.form(\"Tekst\")

Min form ser sådan her ud:

  <FORM METHOD=\"POST\" ENCTYPE=\"multipart/form-data\" ACTION=\"Uploadmere.asp\">
        <INPUT TYPE=FILE SIZE=60 NAME=\"FILE1\">
        <BR>
        Beskrivelse<INPUT TYPE=TEXT SIZE=60 NAME=\"beskrivelse\">
        <br>
        titel<INPUT TYPE=TEXT SIZE=60 NAME=\"titel\">
        <br>
        varenummer1<INPUT TYPE=TEXT SIZE=60 NAME=\"varenummer1\">
        <br>
        varenummer2<INPUT TYPE=TEXT SIZE=60 NAME=\"Varenummer2\">
        <br>
        <INPUT TYPE=SUBMIT VALUE=\"Upload!\">
    </FORM>
Avatar billede keysersoze Ekspert
02. juli 2001 - 17:23 #10
formen skal du ikke ændre...

kun mit script...

om du har behov for variablen ved jeg ikke - men i mit tilfælde var det en nødvendighed da mange skrev tegnet \' og det kan access/asp ikke lide - derfor erstattede jeg det til \'\' så vil det alligevel komme til at se rigtigt ud...

du kan helt fjerne dette:

Tekst = upload.form(\"Tekst\")
Tekst = Replace(Tekst, \"\'\", \"\'\'\")

og bare arbejde videre med resten...
Avatar billede sesam Nybegynder
02. juli 2001 - 17:25 #11
<%

set conn = Server.CreateObject(\"ADODB.Connection\")

   
    Set Upload = Server.CreateObject(\"Persits.Upload.1\")
    Upload.OverwriteFiles = false
      Upload.SetMaxSize 300000, True
      Upload.SaveVirtual (\"images\")
      set persistfil_billede = upload.files(\"billede\")   

Tekst = upload.form(\"Tekst\")
Tekst = Replace(Tekst, \"\'\", \"\'\'\")

if persistfil_billede is nothing then

conn.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"varer.mdb\")

    conn.Execute(\"insert into varer( beskrivelse, titel, varenummer1, varenummer2) \" &_
      \"values(\'\" & upload.form(\"beskrivelse\") & \"\', \'\" & upload.form(\"titel\") & \"\', \'\" & upload.form(\"varenummer1\") & \"\', \'\" & upload.form(\"varenummer2\") & \"\', \'\" & tekst & \"\')\")
    if Err <> 0 Then
          Response.Write headerfont & \"<br>Der er sket en fejl! : \" & Err.Description
    Else
          Response.Write headerfont & \"<br>Tilføjet...</strong></font>\"
    End If
    conn.Close
    set conn = nothing
   
else

MyConn = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"varer.mdb\")   

    For Each File in Upload.Files
   
        File.ToDatabase MyConn, \"insert into artikler(billede, navn, overskrift, kategori, nr, tekst) \" &_
        \"values(\'\" & File.ExtractFileName & \"\', \'\" & upload.form(\"navn\") & \"\', \'\" & upload.form(\"overskrift\") & \"\', \'\" & upload.form(\"kategori\") & \"\', \'\" & upload.form(\"nr\") & \"\', \'\" & tekst & \"\')\"
        if Err <> 0 Then
          Response.Write headerfont & \"<br>Der er sket en fejl! : \" & Err.Description
    Else
          Response.Write headerfont & \"<br>Tilføjet...</strong></font>\"
    End If
    Next
   
end if

%>
Avatar billede keysersoze Ekspert
02. juli 2001 - 17:36 #12
sker der så noget? eller kommer der fejl?
Avatar billede sesam Nybegynder
02. juli 2001 - 17:42 #13
Der kommer fejl
Avatar billede sesam Nybegynder
02. juli 2001 - 18:27 #14
som tak for hjælpen
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