Avatar billede marzman Nybegynder
15. december 2004 - 17:40 Der er 6 kommentarer og
1 løsning

if file exists else?

Hejsa...

Jeg har gang i noget billede visning...

Nu skal den kan finde billedet og hvis ikke så skriver den, noget tekst...

Mine filer ser sådan ud. Problemet er bare at den hele tiden henter fil siden :S

Jeg ved ikke lige hvad der er galt...

------vis.php (sætter billedet ind <img src="vis.php?filen">:------

<?php

$rod = "/billeder/superhemmeligt/";
  $filen = $rod . $_GET['fil'];
  if ( !file_exists( $filen ) )
  {
    $filen = '/billeder/superhemmeligt/404.jpg';
  }
  header( "Content-Type: image/jpg" );
  header( "Content-Length: " . filesize( $filen ) );
  echo file_get_contents( $filen );


?>

--------vis_billede (laver billede siden med top og bund):--------

<?php


$fil = $_SERVER['QUERY_STRING'];

include "/customers/marzman.dk/marzman.dk/httpd.www/top.php";

if (file_exists($fil.".jpg")) {
  print "<div width=\"450\" align=\"center\">$fil.jpg:";
  print "<img src=\"/vis.php?fil=$fil.jpg\" width=\"450\" alt=\"\">";
  print "</div>";
} else {
  print "<div width=\"450\" align=\"center\">";
  print "Det &oslash;nskede billede eksisterer ikke!";
  print "</div>";
}

include "/customers/marzman.dk/marzman.dk/httpd.www/bund.php";

?>

link til siderne:
htttp://marzman.dk/vis_billede.php
htttp://marzman.dk/vis.php
Avatar billede jakoba Nybegynder
15. december 2004 - 17:53 #1
di skal fortælle  file_exists hvilken mappe den skal lede efter billedet i
fx med:
      if (file_exists("/billeder/superhemmeligt/".$fil.".jpg")) {

men så er den mappe jo desværee ikke så superhemmeligt mere :-((

Hvad med at lave et specielt billede med teksten:
    "sorry, der er ikke noget billede med det navn"
skrevet på det.
med sådan et billede kan du klare det ved ALTID at kalde vis.php og så lade det script checke. hvis det ønskede billede ikke findes viser den så defaultbilledet istedetfor:

------vis.php (sætter billedet ind <img src="vis.php?filen">:------

<?php

  $defailtbillede = "dit_billede_med_tekst_paa";  // husk at fjerne '.jpg'
  $rod = "/billeder/superhemmeligt/";

  $filen = $rod . $_GET['fil'];
  if ( !file_exists( $filen ) )
  {
    $filen = "/billeder/superhemmeligt/$defaultbillede.jpg";
  }
  header( "Content-Type: image/jpg" );
  header( "Content-Length: " . filesize( $filen ) );
  echo file_get_contents( $filen );

?>

og så kvittet den der if sætning i den anden fil.

mvh JakobA
Avatar billede marzman Nybegynder
15. december 2004 - 19:16 #2
som du har skrevet det så virker det ikke :S

Jeg har prøvet:

vis.php: ________________

<?php

  $defailtbillede = "404";  // husk at fjerne '.jpg'
  $rod = "/billeder/superhemmeligt/";

  $filen = $rod . $_GET['fil'];
  if ( !file_exists( $filen ) )
  {
    $filen = "/billeder/superhemmeligt/$defaultbillede.jpg";
  }
  header( "Content-Type: image/jpg" );
  header( "Content-Length: " . filesize( $filen ) );
  echo file_get_contents( $filen );

?>

vis_billede.php _______________________

<?php


$fil = $_SERVER['QUERY_STRING'];

include "/customers/marzman.dk/marzman.dk/httpd.www/top.php";

  print "<div width=\"450\" align=\"center\">$fil.jpg:";
  print "<img src=\"/vis.php?fil=$fil.jpg\" width=\"450\" alt=\"\">";
  print "</div>";

include "/customers/marzman.dk/marzman.dk/httpd.www/bund.php";

?>

Er det rigtigt... ??
Avatar billede jakoba Nybegynder
15. december 2004 - 19:21 #3
næe, jeg rodede vist noget med det der '.jpg'

vis.php: ________________

<?php

  $defailtbillede = "404.jpg";
  $rod = "/billeder/superhemmeligt/";

  $filen = $rod . $_GET['fil'];
  if ( !file_exists( $filen ) )
  {
    $filen = "/billeder/superhemmeligt/$defaultbillede";
  }
  header( "Content-Type: image/jpg" );
  header( "Content-Length: " . filesize( $filen ) );
  echo file_get_contents( $filen );

?>
Avatar billede marzman Nybegynder
15. december 2004 - 19:25 #4
der må være en fejl se selv:

http://marzman.dk/vis.php?fil=test

dermed kan den heller ikke sætte det ind på min vis_billede side.
Avatar billede jakoba Nybegynder
15. december 2004 - 19:37 #5
det der skal sendes til vis.php er HELE filnavnet:
  http://marzman.dk/vis.php?fil=test.jpg
men det giver desværre samme fejl, så det er ikke kun det.

prøv at uskifte linien:
  echo file_get_contents( $filen );
med disse 3 linier:
  $fp = fopen ( $filen , "rb" );
  $ok = fpassthru ($fp);
  fclose ($fp);

og pas gevaldigt på at der ikke er tekst, mellemrum, tomme linier eller mogetsomhelst andet foran '<?'  eller bagved '?>'
Avatar billede marzman Nybegynder
15. december 2004 - 19:41 #6
same result! :(
Avatar billede marzman Nybegynder
17. januar 2006 - 17:46 #7
har droppet dette projekt...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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