06. marts 2005 - 21:48
Der er
22 kommentarer og 1 løsning
Problem med "input type=file"
Hej ! Hvordan pokker for jeg det her til at virke .... Jeg har en opdateringsside, hvor jeg har et problem med dette her stykke kode : billed_url = rs("billede") if billed_url<>"" then Response.write "<B>" & "Billede:" & " " & "</B>" & "<br>" & "<br>" & "<img src='" & billed_url & "'" end if Response.Write("<br>") Response.Write("<br>") Response.Write("<br>") Response.Write("Ændre billedet :" & " ") Response.Write("<input type='file' name='billede' size='60' value='" & RS("billede") &"'>") Response.Write("<p>") Når jeg ændre noget på siden undtag billedet sletter den naturligvis det eksisterende billedet fordi "input type=file" er tomt ved opdateringen, hvordan klare jeg dette problem ???
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
06. marts 2005 - 22:06
#1
Du kan ikke putte noget ind i value attributten i et <input type="file"...> Det er af sikkerhedsmæssige hensyn.
06. marts 2005 - 22:09
#2
HMmm.....vil det sige at det ikke kan lade sig gør ?
06. marts 2005 - 22:11
#3
Det kan slet ikke lade sig gøre, nej. Men det er også ganske overflødigt. Er feltet tomt, vil der ikke være nogen fil, når formen submittes, og så ændrer du ikke noget. Er der en fil, er det fordi brugeren vil ændre den. Og så giver det, ud over det sikkerhedsmæssige, slet ingen mening, da du ikke har sti-informationer, kun filnavn. Du ved altså ikke hvor filen findes på brugerens maskine, ej heller om han sidder ved den samme. Det er helt efter bogen ;)
06. marts 2005 - 22:20
#5
Nej, du checker om der er angivet et nyt billede. Hvis ikke, ændrer du blot ingenting.
06. marts 2005 - 22:31
#6
JASÅ..men jeg er ingen ørn til det her, men der skal nok bruges en IF-sætning her i dette stykke kode, men hvordan ser den ud ? sqlstmt = "UPDATE skema SET dato = '" & request.form("dato") &"'" sqlstmt = sqlstmt & ", klokke= '" & request.form("klokke") &"'" sqlstmt = sqlstmt & ", sted= '" & request.form("sted") &"'" sqlstmt = sqlstmt & ", vindretning= '" & request.form("vindretning") &"'" sqlstmt = sqlstmt & ", vindstyrke= '" & request.form("vindstyrke") &"'" sqlstmt = sqlstmt & ", vandstand= '" & request.form("vandstand") &"'" sqlstmt = sqlstmt & ", vandtemparatur= '" & request.form("vandtemparatur") &"'" sqlstmt = sqlstmt & ", vandkvalitet= '" & request.form("vandkvalitet") &"'" sqlstmt = sqlstmt & ", art= '" & request.form("art") &"'" sqlstmt = sqlstmt & ", vagt= '" & request.form("vagt") &"'" sqlstmt = sqlstmt & ", langde= '" & request.form("langde") &"'" sqlstmt = sqlstmt & ", kondi= '" & request.form("kondi") &"'" sqlstmt = sqlstmt & ", agn= '" & request.form("agn") &"'" sqlstmt = sqlstmt & ", farve= '" & request.form("farve") &"'" sqlstmt = sqlstmt & ", bemarkning= '" & request.form("bemarkning") &"'" sqlstmt = sqlstmt & ", billede= '" & request.form("billede") &"'" sqlstmt = sqlstmt & "WHERE id = " & Request.Form("id")
06. marts 2005 - 22:36
#7
UPS ... kan det passe, det her er løsningen sqlstmt = "UPDATE skema SET dato = '" & request.form("dato") &"'" sqlstmt = sqlstmt & ", klokke= '" & request.form("klokke") &"'" sqlstmt = sqlstmt & ", sted= '" & request.form("sted") &"'" sqlstmt = sqlstmt & ", vindretning= '" & request.form("vindretning") &"'" sqlstmt = sqlstmt & ", vindstyrke= '" & request.form("vindstyrke") &"'" sqlstmt = sqlstmt & ", vandstand= '" & request.form("vandstand") &"'" sqlstmt = sqlstmt & ", vandtemparatur= '" & request.form("vandtemparatur") &"'" sqlstmt = sqlstmt & ", vandkvalitet= '" & request.form("vandkvalitet") &"'" sqlstmt = sqlstmt & ", art= '" & request.form("art") &"'" sqlstmt = sqlstmt & ", vagt= '" & request.form("vagt") &"'" sqlstmt = sqlstmt & ", langde= '" & request.form("langde") &"'" sqlstmt = sqlstmt & ", kondi= '" & request.form("kondi") &"'" sqlstmt = sqlstmt & ", agn= '" & request.form("agn") &"'" sqlstmt = sqlstmt & ", farve= '" & request.form("farve") &"'" sqlstmt = sqlstmt & ", bemarkning= '" & request.form("bemarkning") &"'" if billede >0 then sqlstmt = sqlstmt & ", billede= '" & request.form("billede") &"'" end if sqlstmt = sqlstmt & "WHERE id = " & Request.Form("id")
06. marts 2005 - 22:36
#8
Næh, hvis vi var ørne, så ville vi nok ikke sidde her. Men jeg forstår ikke: når du har en form med upload af et billede skal du i gammeldags ASP bruge en upload-komponent. Det ser jeg ikke antydning af. Det er så rigtig nok med den if-sætning, men hvordan den skal se ud afhænger af hvilken upload-komponent du bruger - altså hvordan man checker om der er uploadet en fil eller ej.
06. marts 2005 - 22:48
#9
Jeg bruger "aspSmartUpload" til upload af billeder, men som du selv skrive mangler den på opdateringssiden eller gør den ?
06. marts 2005 - 22:49
#10
Ja, den mangler. Der er ikke synderlig forskel på siden, der indsætter og siden, er ændrer. Man skal vel heller ikke lægge et billede op, hvis man ikke har et.
06. marts 2005 - 22:52
#11
Nej - man skal ikke nødvendigvis ligge et billede op, men man skal ha' muligheden for at ændre det, hvis man har upload ét!
06. marts 2005 - 22:55
#12
Så har du jo allerede logikken, stort set, i "INSERT" siden, som du skal have i "UPDATE" siden. Ik'os'? ;)
06. marts 2005 - 23:13
#13
Jeg kikker videre på det de næste par dage..... GODNAT !
13. marts 2005 - 20:06
#14
Hej erikjacobsen ! Det blev til mere end et par dage, men jeg kan simplehen ikke få det til at virke :o(( Jeg er kommet hertil ....hvor jeg får denne fejl aspSmartUpload error '800a0009' Subscript out of range /fiskegrej/fangstrapport/aendre.asp, line 31 -------O------- Update.asp <% response.buffer = true %> <style type="text/css"> <!-- body { font-weight: bold; } --> </style> <body background="baggrund.jpg" onload="parent.document.getElementById('indhold').style.height=((document.body.scrollHeight)?document.body.scrollHeight:document.body.offsetHeight)+'px'"> <% set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("fang.mdb") sql = "Select * From skema Where Id = " & Request.Querystring("id") Set RS = conn.Execute(SQL) Response.Write("Ændre informationer:") Response.Write("<form action='aendre.asp' method='post'>") Response.Write("Fangstdato :" & " ") Response.Write("<input type='text' name='dato' size='20' value='" & RS("dato") &"'>") Response.Write("<p>") Response.Write("Klokke :" & " ") Response.Write("<input type='text' name='klokke' size='20' value='" & RS("klokke") &"'>") Response.Write("<p>") Response.Write("Sted :" & " ") Response.Write("<input type='text' name='sted' size='20' value='" & RS("sted") &"'>") Response.Write("<p>") Response.Write("Vindretning :" & " ") Response.Write("<input type='text' name='vindretning' size='20' value='" & RS("vindretning") &"'>") Response.Write("<p>") Response.Write("Vindstyrke :" & " ") Response.Write("<input type='text' name='vindstyrke' size='20' value='" & RS("vindstyrke") &"'>") Response.Write("<p>") Response.Write("Vandstand :" & " ") Response.Write("<input type='text' name='vandstand' size='20' value='" & RS("vandstand") &"'>") Response.Write("<p>") Response.Write("Vandtemperatur :" & " ") Response.Write("<input type='text' name='vandtemparatur' size='20' value='" & RS("vandtemparatur") &"'>") Response.Write("<p>") Response.Write("Vandkvalitet :" & " ") Response.Write("<input type='text' name='vandkvalitet' size='20' value='" & RS("vandkvalitet") &"'>") Response.Write("<p>") Response.Write("Art :" & " ") Response.Write("<input type='text' name='art' size='20' value='" & RS("art") &"'>") Response.Write("<p>") Response.Write("Vægt :" & " ") Response.Write("<input type='text' name='vagt' size='20' value='" & RS("vagt") &"'>") Response.Write("<p>") Response.Write("Længde :" & " ") Response.Write("<input type='text' name='langde' size='20' value='" & RS("langde") &"'>") Response.Write("<p>") Response.Write("Konditionsfaktoren: :" & " ") Response.Write("<input type='text' name='kondi' size='20' value='" & RS("kondi") &"'>") Response.Write("<p>") Response.Write("Agn :" & " ") Response.Write("<input type='text' name='agn' size='20' value='" & RS("agn") &"'>") Response.Write("<p>") Response.Write("Farve :" & " ") Response.Write("<input type='text' name='farve' size='20' value='" & RS("farve") &"'>") Response.Write("<p>") Response.Write("Bemærkning :" & " ") Response.Write("<input type='textarea' name='bemarkning' size='20' value='" & RS("bemarkning") &"'>") Response.Write("<p>") billed_url = rs("billede") if billed_url<>"" then Response.write "<B>" & "Billede:" & " " & "</B>" & "<br>" & "<br>" & "<img src='" & billed_url & "'" end if Response.Write("<br>") Response.Write("<br>") Response.Write("<br>") Response.Write("Ændre billedet :" & " ") Response.Write("<input type='file' name='billede' size='60' value='" & RS("billede") &"'>") Response.Write("<p>") Response.Write("<input type='hidden' name='id' value='" & RS("id") &"'>") Response.Write("<p>") Response.Write("<input type='submit' value='Opdater'>") Response.Write("</form>") RS.Close Conn.Close %> -------O------- aendre.asp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>FangstRapport</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- .bold { font-weight: bold; } --> </style> </head> <body background="baggrund.jpg" onload="parent.document.getElementById('indhold').style.height=((document.body.scrollHeight)?document.body.scrollHeight:document.body.offsetHeight)+'px'"> <% if Request.ServerVariables("REQUEST_METHOD") = "POST" then Dim mySmartUpload Dim file Dim intCount intCount=1 Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") mySmartUpload.AllowedFilesList = "gif,jpg,jpeg,bmp,png" mySmartUpload.DenyPhysicalPath = False mySmartUpload.MaxFileSize = 50000 mySmartUpload.Upload For each file In mySmartUpload.Files If file.IsMissing = false Then file.SaveAs(server.mappath("uploads/" & file.FileName)) if CStr(intCount) = "0" then streng = streng & "'" & "uploads/" & file.FileName & "', " else streng = streng & "'" & "uploads/" & file.FileName & "'" end if intCount = intCount + 0 End If Next dato = Replace(mySmartUpload.form("dato"),"'","''") 'dato og klokkeslæt klokke = Replace(mySmartUpload.form("klokke"),"'","''") ' tal sted = Replace(mySmartUpload.form("sted"),"'","''") ' tekst vindretning = Replace(mySmartUpload.form("vindretning"),"'","''") 'tekst vindstyrke = Replace(mySmartUpload.form("vindstyrke"),"'","") ' notat vandstand = Replace(mySmartUpload.form("vandstand"),"'","") ' notat vandtemparatur = Replace(mySmartUpload.form("vandtemparatur"),"'","") ' notat vandkvalitet = Replace(mySmartUpload.form("vandkvalitet"),"'","") ' notat art = Replace(mySmartUpload.form("art"),"'","''") ' tekst langde = Replace(mySmartUpload.form("langde"),"'","") ' notat vagt = Replace(mySmartUpload.form("vagt"),"'","") ' notat kondi = Replace(mySmartUpload.form("kondi"),"'","") ' notat agn = Replace(mySmartUpload.form("agn"),"'","") ' notat farve = Replace(mySmartUpload.form("farve"),"'","") ' notat bemarkning = Replace(mySmartUpload.form("bemarkning"),"'","") ' notat bemarkning = Replace(bemarkning,vbCrLf,"<br>") billede = streng ' tekst if dato="" or sted="" or art="" or vagt="" then Response.Write "Fejl i indtastningen." Response.End else 'kolonne typerne : navn :tekst, dato :date/time, karakter :tal, beskrivelse :notat/tekst sql = "UPDATE skema (dato, klokke, sted, vindretning, vindstyrke, vandstand, vandtemparatur, vandkvalitet, art, langde, vagt, kondi, agn, farve, bemarkning, billede ) values (" sql = sql & "'" & dato & "', " sql = sql & "'" & klokke & "', " sql = sql & "'" & sted & "', " sql = sql & "'" & vindretning & "', " sql = sql & "'" & vindstyrke & "', " sql = sql & "'" & vandstand & "', " sql = sql & "'" & vandtemparatur & "', " sql = sql & "'" & vandkvalitet & "', " sql = sql & "'" & art & "', " sql = sql & "'" & langde & "', " sql = sql & "'" & vagt & "', " sql = sql & "'" & kondi & "', " sql = sql & "'" & agn & "', " sql = sql & "'" & farve & "', " sql = sql & "'" & bemarkning & "', " sql = sql & "" & billede & "" sql = sql & ")" set Conn = Server.CreateObject("ADODB.Connection") strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("fang.mdb") Conn.Open strConn Conn.Execute(sql) Conn.Close Set conn=nothing Response.redirect "sidstetest.asp" end if end if %> <script> function validate(theform) { if(theform.dato.value=='') { alert ('Dato felt skal udfyldes'); return false; } if(theform.sted.value=='') { alert ('Sted felt skal udfyldes'); return false; } if(theform.art.value=='') { alert ('Art felt skal udfyldes'); return false; } if(theform.vagt.value=='') { alert ('Vægt felt skal udfyldes'); return false; } return true; } </script> </body> </html>
13. marts 2005 - 23:00
#15
Er det der hvor du bruger RS("dato") ? Man kan ikke bruge RS uden først at teste på om RS.eof er sand, altså om man rent faktisk fandt en række. Derfor?
14. marts 2005 - 19:23
#16
linie 31 = mySmartUpload.Upload Så jeg kommer ikke så langt til RS endnu....
14. marts 2005 - 22:18
#17
Ok, der var 2 scripts ;) Husk lige at din <form> skal have en enctype ="multipart/form-data"
15. marts 2005 - 20:59
#18
Det vil simpelhen ikke som jeg vil ha' det :o(( Jeg har nu tilføjet ENCTYPE="multipart/form-data" - men lige lidt hjalp det !!! Erik - Har du nogen ide om, hvad det koster, at få lavet sådan et script færdig ??? For jeg tror - jeg er gået i gang med noget mine evner ikke rækker til endnu i hvert fald, men jeg vil så inderlig gerne ha' det lavet inden havørred sæsonen starter for alvor !
15. marts 2005 - 21:16
#19
På din testside har du 2 <form>-s inden i hinanden. Det kan man ikke. Nu ved jeg ikke noget om havørreder - men det er fisk, ik'? - men du er velkommen til at kontakte mig på min emailadresse i mit minisite, hvis du ikke har tålmodighed til at lave det selv ;)
15. marts 2005 - 22:06
#20
Ja der er gået fisk i den ;o) og jeg har sendt dig en mail med en forespørgelse ! Jeg må være sneblind for jeg kan ikke se de 2 <form> ???
15. marts 2005 - 22:07
#21
15. marts 2005 - 22:26
#22
<form> er fundet ;o) men der er vidst lang vej hjem endnu.... Jeg skal til - at stå på rygge (sove), så jeg prøver videre i morgen !
29. juli 2005 - 23:46
#23
Må heller få ryddet lidt op, såvidtjeghusker vil du ikke ha' nogen point Erik!
Kurser inden for grundlæggende programmering