Avatar billede webbygger Nybegynder
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:" & "&nbsp;" & "</B>" & "<br>" & "<br>" & "<img src='" & billed_url & "'"
                      end if
    Response.Write("<br>")
    Response.Write("<br>")             
    Response.Write("<br>")
    Response.Write("Ændre billedet :" & "&nbsp;")
   
    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 ???
Avatar billede erikjacobsen Ekspert
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.
Avatar billede webbygger Nybegynder
06. marts 2005 - 22:09 #2
HMmm.....vil det sige at det ikke kan lade sig gør ?
Avatar billede erikjacobsen Ekspert
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 ;)
Avatar billede webbygger Nybegynder
06. marts 2005 - 22:18 #4
Hvis brugeren har upload et billed til en side og bagefter ønsker at ændre noget tekst på samme side, så skal man altså også upload billedet påny for at få det med på siden igen ?

Billedet bliver upload til en mappe på serveren !

Se evt. http://www.web-byggeren.dk/fiskegrej/fangstrapport/fangstindex.asp
Avatar billede erikjacobsen Ekspert
06. marts 2005 - 22:20 #5
Nej, du checker om der er angivet et nyt billede. Hvis ikke, ændrer du blot ingenting.
Avatar billede webbygger Nybegynder
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")
Avatar billede webbygger Nybegynder
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")
Avatar billede erikjacobsen Ekspert
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.
Avatar billede webbygger Nybegynder
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 ?
Avatar billede erikjacobsen Ekspert
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.
Avatar billede webbygger Nybegynder
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!
Avatar billede erikjacobsen Ekspert
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'? ;)
Avatar billede webbygger Nybegynder
06. marts 2005 - 23:13 #13
Jeg kikker videre på det de næste par dage.....

GODNAT !
Avatar billede webbygger Nybegynder
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 :" & "&nbsp;")
    Response.Write("<input type='text' name='dato' size='20' value='" & RS("dato") &"'>")
    Response.Write("<p>")
   
    Response.Write("Klokke :" & "&nbsp;")
    Response.Write("<input type='text' name='klokke' size='20' value='" & RS("klokke") &"'>")
    Response.Write("<p>")
   
    Response.Write("Sted :" & "&nbsp;")
    Response.Write("<input type='text' name='sted' size='20' value='" & RS("sted") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vindretning :" & "&nbsp;")
    Response.Write("<input type='text' name='vindretning' size='20' value='" & RS("vindretning") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vindstyrke :" & "&nbsp;")
    Response.Write("<input type='text' name='vindstyrke' size='20' value='" & RS("vindstyrke") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vandstand :" & "&nbsp;")
    Response.Write("<input type='text' name='vandstand' size='20' value='" & RS("vandstand") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vandtemperatur :" & "&nbsp;")
    Response.Write("<input type='text' name='vandtemparatur' size='20' value='" & RS("vandtemparatur") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vandkvalitet :" & "&nbsp;")
    Response.Write("<input type='text' name='vandkvalitet' size='20' value='" & RS("vandkvalitet") &"'>")
    Response.Write("<p>")
   
    Response.Write("Art :" & "&nbsp;")
    Response.Write("<input type='text' name='art' size='20' value='" & RS("art") &"'>")
    Response.Write("<p>")
   
    Response.Write("Vægt :" & "&nbsp;")
    Response.Write("<input type='text' name='vagt' size='20' value='" & RS("vagt") &"'>")
    Response.Write("<p>")
   
    Response.Write("Længde :" & "&nbsp;")
    Response.Write("<input type='text' name='langde' size='20' value='" & RS("langde") &"'>")
    Response.Write("<p>")
   
    Response.Write("Konditionsfaktoren: :" & "&nbsp;")
    Response.Write("<input type='text' name='kondi' size='20' value='" & RS("kondi") &"'>")
    Response.Write("<p>")
   
    Response.Write("Agn :" & "&nbsp;")
    Response.Write("<input type='text' name='agn' size='20' value='" & RS("agn") &"'>")
    Response.Write("<p>")
   
    Response.Write("Farve :" & "&nbsp;")
    Response.Write("<input type='text' name='farve' size='20' value='" & RS("farve") &"'>")
    Response.Write("<p>")
   
    Response.Write("Bemærkning :" & "&nbsp;")
    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:" & "&nbsp;" & "</B>" & "<br>" & "<br>" & "<img src='" & billed_url & "'"
                      end if
    Response.Write("<br>")
    Response.Write("<br>")             
    Response.Write("<br>")
    Response.Write("Ændre billedet :" & "&nbsp;")
   
    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>
Avatar billede erikjacobsen Ekspert
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?
Avatar billede webbygger Nybegynder
14. marts 2005 - 19:23 #16
linie 31 =  mySmartUpload.Upload

Så jeg kommer ikke så langt til RS endnu....
Avatar billede erikjacobsen Ekspert
14. marts 2005 - 22:18 #17
Ok, der var 2 scripts ;)

Husk lige at din <form> skal have en enctype ="multipart/form-data"
Avatar billede webbygger Nybegynder
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 !
Avatar billede erikjacobsen Ekspert
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 ;)
Avatar billede webbygger Nybegynder
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> ???
Avatar billede erikjacobsen Ekspert
15. marts 2005 - 22:07 #21
Det er i den aktuelle kode i linket du gav:  http://www.web-byggeren.dk/fiskegrej/fangstrapport/fangstindex.asp
Avatar billede webbygger Nybegynder
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 !
Avatar billede webbygger Nybegynder
29. juli 2005 - 23:46 #23
Må heller få ryddet lidt op, såvidtjeghusker vil du ikke ha' nogen point Erik!
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