Avatar billede killstun Nybegynder
04. august 2005 - 23:56 Der er 13 kommentarer og
1 løsning

Upload og insert billede i access databasen

Jeg har en form, hvor jeg udfylder nogle information og uploader et billede. Nu vil jeg gerne finde ud af hvorledes jeg kan få stien og filnavnet til det uploadede billede indført i databasen. Eksempel på mit nuværende script følger herunder:

form.asp:

<form enctype="multipart/form-data" action="sql.asp" method="post">
<input type="text" name="navn"><br>
<input type="text" name="efternavn"><br>
<input type=file name="file1"><br>
<input type="submit" value="Tilføj">

sql.asp:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.OverwriteFiles = false
Upload.SetMaxSize 1000000, True
Upload.SaveVirtual ("upload/")
%>
...længere nede på siden:
strSQL = "Insert into personer (navn, efternavn, file1) values('" & Upload.Form("navn") & "', '" & Replace(Upload.Form("efternavn"), "'", "''") & "', '" & Replace(Upload.Form("file1"), "'", "''") & "')"
Conn.Execute(strSQL)

- men med ovenstående script bliver billedet kun uploadet, og ikke indført i databasen?
Avatar billede busschou Praktikant
05. august 2005 - 07:59 #1
Hvis du ønsker billedet skal ind i databasen så skal du lave noget binaryread og binarywrite halløj
Det er generelt anbefalet at man ikke gemmer selve billedet i databasen men derimod gemmer det på serveren og så i databasen blot gemmer stien til billedet
Årsagen er at dels fylder et billede meget i databasen og den sløves, dels at man skal kode en del ekstra for at hive billedet ud og vise det, hvilket også kræver resourcer
--
Så jeg vil foreslå dig at gemme stien til billedet i stedet :o)
Avatar billede busschou Praktikant
05. august 2005 - 08:02 #2
hvis du laver en løkke
For Each File in Upload.Files
Så vil du have stien til billedet i File.Path
Avatar billede busschou Praktikant
05. august 2005 - 08:04 #3
men kig evt her
http://www.asp101.com/resources/aspupload.asp
Der er nederst et eksempel på at gemme billedet i databasen, og senere på hvordan det kan hives ud igen
Avatar billede killstun Nybegynder
05. august 2005 - 08:12 #4
Ja, jeg mente også stien til databasen, ikke selve billedet. Men er ikke helt sikker på at jeg forstår ovenstående eksempel. Kan du ikke prøve at give et eksempel på hvorledes det ser ud i mit script.
Avatar billede busschou Praktikant
05. august 2005 - 08:16 #5
Jeg ved ikke om du kan benytte Upload.Form("file1").Path
Men ellers
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.OverwriteFiles = false
Upload.SetMaxSize 1000000, True
Upload.SaveVirtual ("upload/")
For Each File in Upload.Files
  strSQL = "Insert into personer (navn, efternavn, file1) values('" & Upload.Form("navn") & "', '" & Replace(Upload.Form("efternavn"), "'", "''") & "', '" & File.Path & "')"
  Conn.Execute(strSQL)
Next
%>
Avatar billede killstun Nybegynder
06. august 2005 - 14:47 #6
Øv, ingen af de to virker...Hvordan får jeg dem så ind?
Avatar billede busschou Praktikant
06. august 2005 - 14:51 #7
hvordan ser hele din kode ud?
Avatar billede killstun Nybegynder
06. august 2005 - 15:01 #8
Således:

Form.asp:
<form enctype="multipart/form-data" action="sql.asp" method="post">
Titel:<br />
<input size="76" type="text" name="titel"><br />
Indeks:<br />
<input size="76" type="text" name="indeks"><br />
Billede:<br />
<input size="76" type=file name="file1"><br />
Notat:<br />
<textarea rows="8" cols="58" name="notat"></textarea><br />
<input type="submit" value="Tilføj film">

sql.asp:
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.OverwriteFiles = false
Upload.SetMaxSize 1000000, True
Upload.SaveVirtual ("upload/")
%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/database.mdb")
Conn.Open DSN

strSQL = "Insert into film (titel, indeks, file1, notat)

values('" & Replace(Upload.Form("titel"), "'", "''") & "', '" & Replace(Upload.Form("indeks"), "'", "''") & "', '" & Replace(Upload.Form("file1").Path, "'", "''") & "', '" & Replace(Upload.Form("notat"), "'", "''") & "')"
Conn.Execute(strSQL)

- har klippet lidt i den, da den er utrolig stor....
Avatar billede busschou Praktikant
06. august 2005 - 15:10 #9
hmm ok det kan jeg desværre ikke lige lure så, beklager :o/
Avatar billede killstun Nybegynder
06. august 2005 - 15:14 #10
oki, men har lige fundet en tråd hvor der også anvendes persits, så vender lige tilbage og et øjeblik hvis det virker.
Avatar billede killstun Nybegynder
06. august 2005 - 15:22 #11
Yes, nu virker det. Jeg gjorde dette:

file1 = Upload.Form("file1")
Set file1 = Upload.Files("file1")
If file1 is nothing Then
file1 = ""
Else
file1 = file1.ExtractFileName
End if

og i strsql:
'" & file1 & "'
Avatar billede busschou Praktikant
06. august 2005 - 15:26 #12
okey det er jo godt :o)
Avatar billede killstun Nybegynder
06. august 2005 - 17:21 #13
Tak for hjælpen ellers busschou.
Avatar billede busschou Praktikant
06. august 2005 - 17:23 #14
selv tak, engang imellem kan man desværre ikke det hele :o)
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