02. november 2004 - 17:52
Der er
13 kommentarer og 1 løsning
Gemme uploaded filnavn i databasen.
Jeg har følgende filer: filnavn: nyvare.asp <%@language="vbscript" %> <html> <head> </head> <body> opret ny vare <form method="GET" action="opretv.asp"> <input type="text" name="overskrift"> <textarea name="tekst"></textarea> <select name="kategori" onChange="MM_jumpMenu('parent',this,0)"> <option>møbler</option> <option>sølvtøj</option> <option>diverse</option> <option>porcelæn</option> </select> input type="submit" value="Gem"> </form> </body> </html> Filnavn: opretv.asp <%@language="vbscript" %> <!--#include file="connect.asp"--> <% Set varer = Server.CreateObject("ADODB.Recordset") varer.Open "ting", database, 2,2 %> <% varer.AddNew varer("overskrift")=Request.QueryString("overskrift") varer("tekst")=Request.QueryString("tekst") varer("kategori")=Request.QueryString("kategori") varer.Update %> <html> <head> </head> <body> Upload billeder <form method="POST" enctype="multipart/form-data" action="upload.asp"> <table width="100%" border="0"> Lille billede: <input type="file" name="billeder"> Stort billede: <input type="file" name="billeder2"> <input type="submit" value="Upload"> </form> </body> </html> Filnavn: Upload.asp <%@language="vbscript" %> <!--#include file="connect.asp"--> <html> <body> <% Set Upload = Server.CreateObject("Persits.Upload.1") Upload.SaveVirtual("../ting/") %> <b>her er filnavnene:</b><br> <% For Each File in Upload.Files Response.Write File.Path Next %> </body> </html> Mit spørgsmål lyder så: Hvordan kan jeg uploade billederne og gemme stien i min database sammen med de andre oplysninger (dvs. samme række i tabellen)? Jeg kan oplyse at jeg fint kan uploade og udskrive filernes navne. På forhånd tak for hjælpen :o)
Annonceindlæg fra Academic Work Denmark A/S
02. november 2004 - 18:48
#1
hej du skal vel have tilføjet det i din database heromkring: <% For Each File in Upload.Files Response.Write File.Path & "/" & File.Name filnavn = File.Name 'filnavn filtype = File.ContentType 'filtypen filstr = File.Size 'størrelse i kb SQL = "Insert INTO dintabel (billedenavn, billedetype, billedestr) " & _ "VALUES('" & filnavn & "','" & filtype & "'," & filstr & ");" Response.Write SQL 'din connectionstring her! Next %> /hiks
02. november 2004 - 18:56
#2
<%@language="vbscript" %> <html> <head> </head> <body> opret ny vare <form method="GET" action="opretv.asp"> <input type="text" name="overskrift"> <textarea name="tekst"></textarea> <select name="kategori" onChange="MM_jumpMenu('parent',this,0)"> <option>møbler</option> <option>sølvtøj</option> <option>diverse</option> <option>porcelæn</option> </select> input type="submit" value="Gem"> </form> </body> </html> Filnavn: opretv.asp <%@language="vbscript" %> <!--#include file="connect.asp"--> <% %> <% session("overskrift")=Request.QueryString("overskrift") session("tekst")=Request.QueryString("tekst") session("kategori")=Request.QueryString("kategori") %> <html> <head> </head> <body> Upload billeder <form method="POST" enctype="multipart/form-data" action="upload.asp"> <table width="100%" border="0"> Lille billede: <input type="file" name="billeder"> Stort billede: <input type="file" name="billeder2"> <input type="submit" value="Upload"> </form> </body> </html> Filnavn: Upload.asp <%@language="vbscript" %> <!--#include file="connect.asp"--> <html> <body> <% Set Upload = Server.CreateObject("Persits.Upload.1") Upload.SaveVirtual("../ting/") %> <b>her er filnavnene:</b><br> <% filepath = "" For Each File in Upload.Files filepath = filepath & File.Path & "," Next filearr = split(filepath,",") sql = "insert into ting(overskrift,tekst,kategori,lillebillede,stortbillede) values('"&session("overskrift")&"','"&session("tekst")&"','"&session("kategori")&"','"&filearr(0)&"','"&filearr(1)&"') Set varer = Server.CreateObject("ADODB.connection") varer.Open database set rs = varer.execute(sql) %> </body> </html> Vil tro dette kan gøre det for dig.. Men har ikke testet det.
02. november 2004 - 19:03
#3
ellebaek: dit array skal vel dannes inde i løkken - da jeg tror der bliver uploadet mere end een fil. Ellers er det mig der har misforstået hvorfor der er en løkke der i hvert fald. /hiks
02. november 2004 - 19:05
#4
Jeg har nu prøvet med det sidste bud da dette er det bedste. Den kommer dog med denne fejl: Microsoft VBScript compilation error '800a0409' Unterminated string constant upload.asp, line 20 sql = "insert into ting(overskrift,tekst,kategori,lillebillede,stortbillede) values('"&session("overskrift")&"','"&session("tekst")&"','"&session("kategori")&"','"&filearr(0)&"','"&filearr(1)&"') For mig ser det ud som om den ikke får hentet data ud af sessionen eller at der skal bruges en anden måde at skrive til databasen. Måske kan det hjælpe hvis jeg viser hvordan min connect.asp ser ud? Filnavn: <% language="vbscript" %> <% SET database = Server.CreateObject("ADODB.Connection") database.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/sverige.mdb") %> mangler lige det sidste. men tak for den brugte tid!!
02. november 2004 - 19:09
#5
jo der skal uploades 2 filer hvis navne/sti skal gemmes i databasen "sverige.mdb" i tabellen "ting" og i samme række som de tidligere indtastede informationer. Håber det ikke er helt umuligt!
02. november 2004 - 19:22
#6
Filnavn: opretv.asp <%@language="vbscript" %> <!--#include file="connect.asp"--> <% Set varer = Server.CreateObject("ADODB.Recordset") varer.Open "ting", database, 2,2 %> <% varer.AddNew varer("overskrift")=Request.QueryString("overskrift") varer("tekst")=Request.QueryString("tekst") varer("kategori")=Request.QueryString("kategori") varer.Update id = varer("id") 'hvis du altså har et felt der hedder id ellers ret til dit id felt %> <html> <head> </head> <body> Upload billeder <form method="POST" enctype="multipart/form-data" action="upload.asp"> <table width="100%" border="0"> Lille billede: <input type="file" name="billeder"> Stort billede: <input type="file" name="billeder2"> <input type="submit" value="Upload"> </form> </body> </html> Filnavn: Upload.asp <%@language="vbscript" %> <!--#include file="connect.asp"--> <html> <body> <% Set Upload = Server.CreateObject("Persits.Upload.1") Upload.SaveVirtual("../ting/") %> <b>her er filnavnene:</b><br> <% dim i 'tæller For Each File in Upload.Files Response.Write File.Path & "/" & File.Name filnavn(i) = File.Name 'filnavn i = i + 1 Next SQL = "UPDATE ting SET lillebillede = '" & filnavn(0) & "', " & _ "stortbillede = '" & filnavn(1)& "' " & _ "WHERE id = " & id & ";" Response.Write SQL 'husk at ændre idnavnet i tabellen 'din connectionstring her! set rs = varer.execute(sql) %> </body> </html> /hiks
02. november 2004 - 19:24
#7
du skal lige huske at det id ' skal postes videre således at du kan fange det evt. vha. request.form("id") eller request.querystring fra opretv.asp - ellers får du problemer med at opdatere recordsættet - altså den rette post! /hiks
02. november 2004 - 19:32
#8
Jeg fik det til at virke med ellebaek's script. Der manglede et "-tegn. 1000 tak for den brugte tid /hiks kan man dele point op?
02. november 2004 - 19:38
#9
så må ellebaek skrive hvis man føler han mangler point :o)
04. november 2004 - 21:42
#10
jeg føler jeg mangler points da :-)
05. november 2004 - 00:29
#11
hva siger du til 100 fra mig? opretter lige i fejlkategori i morgen, ok? /hiks
05. november 2004 - 10:56
#12
jo glimrende :-) Bare smid en ref når den er klar ;.)
05. november 2004 - 11:08
#13
nu har jeg siddet og ledt lidt her på eksperten - er der ikke en bestemt kategori til: Point til ? Link? Kan ikke finde den efter at de har lavet om på kategorierne. /hiks
Kurser inden for grundlæggende programmering