Avatar billede Noam-9 Praktikant
18. juli 2001 - 10:16 Der er 22 kommentarer og
2 løsninger

Fotografen-er-på-vej

Hej,
Jeg er ved at hive nogle resultater ud af en access-database, med personoplysninger. For at undgå billeder i databasen har jeg lavet et bibliotek (billeddump) der indeholder alle billederne.
Billederne er navngivet efter denne form: \"initialer\".jpg.
\"Initialer\" er navnet på en kolonnne i min database.

På den måde kan jeg nemt hente billedet.

Problemet er nu at der er endnu ikke taget et billede af alle dem der er i basen, hvilket resulterer i det irriterende lille billed-ikon med et rødt kryds i midten som indikere at billedet ikke eksisterer.
Her er kodestumpen:
  src=\"../billeddump/<%=rs(\"initialer\")%>.jpg

Jeg har lavet et \"fotografen-er-på-vej\"-billede (foto.jpg) og kunne godt tænke mig at det bliver vist hvis der ikke eksisterer et billede der svarer til de sendte initialer.

Hvordan gør man det?
Avatar billede nute Nybegynder
18. juli 2001 - 10:19 #1
kan du ikke bare gjøre:
<%
response.write \"<img src=\"\"../billeddump/\"
if( LEN(TRIM(rs(\"initialer\"))) > 0 ) then
  response.write rs(\"initialer\")
else
  response.write \"foto\"
end if
response.write \".jpg\"\">\"
%>

/nute
Avatar billede Slettet bruger
18. juli 2001 - 10:20 #2
Du kan da bare angive stien til dit \"dummy billede\" i din Access db de steder hvor du ikke har et billede...
Avatar billede nute Nybegynder
18. juli 2001 - 10:22 #3
og fylle opp databasen med overflødige data ?! ;-)
Avatar billede Noam-9 Praktikant
18. juli 2001 - 10:22 #4
Jeg er slet ikke en ørn til ASP, så hvis ovenstående skulle sættes ind i flg. kode hvordan skulle det så gøres?
(så skal man vel ikke bruge response.write?)

    <table border=\"0\" width=\"100%\">
        <tr>
          <td width=\"50%\"><%=rs(\"fornavn\")%></td>
          <td width=\"50%\" rowspan=\"6\"><img border=\"0\" src=\"../billeddump/<%=rs(\"initialer\")%>.jpg\"></td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"efternavn\")%></td>
        </tr>
        <tr>
          <td width=\"50%\">
            <table border=\"0\" width=\"100%\">
              <tr>
                <td width=\"33%\"><%=rs(\"initialer\")%></td>
                <td width=\"33%\"><%=rs(\"lokalnr\")%></td>
                <td width=\"34%\"><%=rs(\"vaerelse\")%></td>
              </tr>
            </table>
          </td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"afdeling\")%></td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"stilling\")%></td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"uddannelse\")%></td>
        </tr>
        <tr>
          <td width=\"100%\" colspan=\"2\"><%=rs(\"bemaerkning\")%></td>
        </tr>
        <tr>
          <td width=\"20%\" valign=\"top\" align=\"left\" height=\"27\" colspan=\"2\">
          <p align=\"center\"></td>
        </tr>
      </table>
Avatar billede Noam-9 Praktikant
18. juli 2001 - 10:23 #5
Ezolu--> Og give 170 pers samme initialer??
Avatar billede tommyf Nybegynder
18. juli 2001 - 10:24 #6
<% If initialer <> \"\" Then %>
  <img border=\"0\" src=\"billeddump/<%=initialer%>.jpg\">
<%else%>
  <img border=\"0\" src=\"billeddump/foto.jpg\">
<%end if%>
Avatar billede nute Nybegynder
18. juli 2001 - 10:24 #7
bytt ut dette:

<tr>
  <td width=\"50%\"><%=rs(\"fornavn\")%></td>
  <td width=\"50%\" rowspan=\"6\">
<%
  response.write \"<img border=\"\"0\"\" src=\"\"../billeddump/\"
  if( LEN(TRIM(rs(\"initialer\"))) > 0 ) then
    response.write rs(\"initialer\")
  else
    response.write \"foto\"
  end if
  response.write \".jpg\"\">\"
  %>

  </td>
</tr>

med dette:

<tr>
  <td width=\"50%\"><%=rs(\"fornavn\")%></td>
  <td width=\"50%\" rowspan=\"6\"><img border=\"0\" src=\"../billeddump/<%=rs(\"initialer\")%>.jpg\"></td>
</tr>

/nute       
Avatar billede tommyf Nybegynder
18. juli 2001 - 10:25 #8
    <table border=\"0\" width=\"100%\">
        <tr>
          <td width=\"50%\"><%=rs(\"fornavn\")%></td>
          <td width=\"50%\" rowspan=\"6\"><img border=\"0\" src=\"../billeddump/<%=rs(\"initialer\")%>.jpg\"></td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"efternavn\")%></td>
        </tr>
        <tr>
          <td width=\"50%\">
            <table border=\"0\" width=\"100%\">
              <tr>
                <td width=\"33%\">
                <% If initialer <> \"\" Then %>
                  <img border=\"0\" src=\"billeddump/<%=initialer%>.jpg\">
                <%else%>
                  <img border=\"0\" src=\"billeddump/foto.jpg\">
                <%end if%>
                </td>
                <td width=\"33%\"><%=rs(\"lokalnr\")%></td>
                <td width=\"34%\"><%=rs(\"vaerelse\")%></td>
              </tr>
            </table>
          </td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"afdeling\")%></td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"stilling\")%></td>
        </tr>
        <tr>
          <td width=\"50%\"><%=rs(\"uddannelse\")%></td>
        </tr>
        <tr>
          <td width=\"100%\" colspan=\"2\"><%=rs(\"bemaerkning\")%></td>
        </tr>
        <tr>
          <td width=\"20%\" valign=\"top\" align=\"left\" height=\"27\" colspan=\"2\">
          <p align=\"center\"></td>
        </tr>
      </table>
Avatar billede Slettet bruger
18. juli 2001 - 10:33 #9
littleboy > De ville da ikke få samme initialer, men Nutes svar er da klart bedre end mit...
Avatar billede carpediem Nybegynder
18. juli 2001 - 10:35 #10
Der kan vel godt være initialer uden der er et billede???
Avatar billede carpediem Nybegynder
18. juli 2001 - 10:43 #11
Set FSO = Server.CreateObject(\"Scripting.FileSystemObject\")
If (FSO.FileExists(\"Den/fysiske/sti/indtil/billederne/\" & rs(\"initialer\") & \".jpg\")) Then
  Response.Write \"<img src=\"\"billeddump/\" & rs(\"initialer\") & \".jpg\"\" border=\"\"0\"\">\"
Else
  Response.Write \"<img src=\"\"billeddump/Fotojpg\"\" border=\"\"0\"\">\"
End If
Avatar billede nute Nybegynder
18. juli 2001 - 10:44 #12
eller en enda bedre løsning:

<%
fileSys = Server.createObject(\"Scripting.FileSystemObject\")
if( fileSys.fileExists( server.MapPath( \"../billeddump/\" & rs(\"initialer\") & \".jpg\" ) ) ) then
  response.write \"<img border=\"\"0\"\" src=\"\"../billeddump/\" & rs(\"initialer\") & \".jpg\"\">\"
else
  response.write \"<img border=\"\"0\"\" src=\"\"../billeddump/foto.jpg\"\">\"
end
%>

Så sjekker du om bildet eksisterer, og skriver ut hvis det gjør det...

/nute
Avatar billede nute Nybegynder
18. juli 2001 - 10:45 #13
carpediem >> :-D
Avatar billede Noam-9 Praktikant
18. juli 2001 - 10:45 #14
tommyf -> Jeg kan ikke få dit til at virke, alle har initialer selvom der ikke er noget billede, så den vil forsøge at vise src=\"../billeddump/<%=rs(\"initialer\")%>.jpg\" under alle omstændigheder med dit forslag.

nute -> Når jeg prøver dit forslag kan den stadig godt vise de der har billede med det ændre ikke på at det lille billed-ikon kommer frem hos resten. (Jeg kan ikke gemmenskue det, men måske der er for mange \"\" og \'\"\' i dit forslag?)

Avatar billede pierrehusted Nybegynder
18. juli 2001 - 10:46 #15
Alle medarbejderne har initialer.
Disse initialer skal beholdes.

Som jeg ser det er der to muligheder:
- Du kan oprette et ekstra felt der angiver om der findes billede. Hvis der ikke findes billede vises fofo.jpg.
- Du må kikke efter om filen findes på disken, og hvis den ikke findes, så må du vise den anden (foto.jpg).

For at se efter billedet kan du gøre noget i den her stil :


Set objFS = CreateObject(\"Scripting.FileSystemObject\")
picpath = \"d:\\hvor_det_nu_er_billederne_ligger\\\"
filnavn = picpath & rs(\"initialer\") & \".jpg\"
If objFS.FileExists(filnavn) Then
  vis_filnavn = rs(\"initialer\") & \".jpg\"
Else
  vis_filnavn = \"foto.jpg\"
End If

response.write(\"<img src=\'../billeddump/\" & <%=rs(\"initialer\")%> & \".jpg\'>\")

Avatar billede Noam-9 Praktikant
18. juli 2001 - 10:49 #16
nute ->
Her er hvad jeg får ud af dit sidste svar:

Microsoft VBScript runtime error \'800a01b6\'

Object doesn\'t support this property or method: \'fileSys\'

/intranet/medarb/vis_medarb.asp, line 34
Avatar billede carpediem Nybegynder
18. juli 2001 - 10:50 #17
Hvis du bruger nute, så prøv:

SET fileSys = Server.createObject(\"Scripting.FileSystemObject\")

istedet for:

fileSys = Server.createObject(\"Scripting.FileSystemObject\")
Avatar billede nute Nybegynder
18. juli 2001 - 10:50 #18
bytt ut denne linje:

fileSys = Server.createObject(\"Scripting.FileSystemObject\")

,med denne linje:

Set fileSys = Server.createObject(\"Scripting.FileSystemObject\")

/nute
Avatar billede carpediem Nybegynder
18. juli 2001 - 10:55 #19
nute>> Du kommer snart før mig. Før var det 50sek, nu kun 40sek.

:-)
Avatar billede nute Nybegynder
18. juli 2001 - 10:56 #20
jeg prøver så godt jeg kan :)
Avatar billede Noam-9 Praktikant
18. juli 2001 - 11:00 #21
Mange tak.
Avatar billede Noam-9 Praktikant
18. juli 2001 - 11:05 #22
Mange tak begge to.
Bare et lille spg. til sidst.
Når man har en kode som nedenstående:
src=\"../billeddump/<%=rs(\"initialer\")%>.jpg\"
bliver der så ikke returneret en \"false\" hvis billedet ikke eksisterer? Og ville det så ikke være nemmere at lave noget lignende:
if XXXX= false src=\"../billeddump/foto.jpg\" ?
Avatar billede carpediem Nybegynder
18. juli 2001 - 11:08 #23
Desværre. Det er derfor man bruger FSOen (FileSystemObject)
Avatar billede Noam-9 Praktikant
18. juli 2001 - 11:19 #24
ok tak, spg lukkes.
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