Avatar billede marzman Nybegynder
13. december 2004 - 20:41 Der er 22 kommentarer og
1 løsning

vis billede

Hejsa...

jeg vil gerne have en form for billede visning på en måde så koden hedder <img src="vis.php?id=xxx

xxx står så for billedes nummer...

dette nummer skal så angive en fil som ligger i en mappe /meget/langt/ude/i/en/sti

altså så folk ikke kan opsøge billedet direkte på siden eller i kilden...

Hvordan skal jeg lave det... ???

Jeg har php og mysql til rådighed.
Avatar billede coderdk Praktikant
13. december 2004 - 20:44 #1
Du kan selv lave det lækrere, og smide database på:
vis.php:

<?php

  $fil = "/sti/til/billede.jpg";
  header( "Content-Type: image/jpg" );
  echo file_get_contents( $fil );

?>
Avatar billede coderdk Praktikant
13. december 2004 - 20:45 #2
Eller "pænere":

<?php

  $fil = "/sti/til/billede.jpg";
  header( "Content-Type: image/jpg" );
  header( "Content-Length: " . filesize( $fil ) );
  echo file_get_contents( $fil );

?>
Avatar billede marzman Nybegynder
13. december 2004 - 21:56 #3
hvad hedder det så <img src="vis.php?filen.jpg">

hvor jeg har gemt din kode som vis.php ??
Avatar billede coderdk Praktikant
13. december 2004 - 22:14 #4
hvis du kalder vis.php?fil=billede.jpg
og vis.php ser sådan ud:

<?php

  $rod = "/sti/til/";
  $filen = $rod . $_GET['fil'];
  header( "Content-Type: image/jpg" );
  header( "Content-Length: " . filesize( $filen ) );
  echo file_get_contents( $filen );

?>

ville det virke :)
Avatar billede marzman Nybegynder
14. december 2004 - 19:05 #5
Virker ikke !

http://marzman.dk/vis.php?test.jpg

og filen indeholder:

<?php

  $rod = "http://marzman.dk/billeder/superhemmeligt/";
  $filen = $rod . $_GET['fil'];
  header( "Content-Type: image/jpg" );
  header( "Content-Length: " . filesize( $filen ) );
  echo file_get_contents( $filen );

?>

har også prøvet:

<?php

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

?>

Billedet filen er:

<img src="/vis.php?test.jpg">
Avatar billede coderdk Praktikant
14. december 2004 - 19:12 #6
Avatar billede coderdk Praktikant
14. december 2004 - 19:13 #7
Eller ædr $_GET['fil'] til $_SERVER['QUERY_STRING']
:P
Avatar billede marzman Nybegynder
14. december 2004 - 20:22 #8
hvad gør jeg hvis jeg vil have en top og bund fil ind ??? med include
Avatar billede marzman Nybegynder
14. december 2004 - 21:58 #9
evt. få den til at åbne 404.php
Avatar billede coderdk Praktikant
14. december 2004 - 22:00 #10
Ikke forstået? vis.php kan jo kun vise billeder - Men du kan jo checke om filen eksisterer med file_exists() - hvis den ikke gør, kan du sætte $filen til et "fejlbillede", som f.eks. fejl.jpg ;)
Avatar billede marzman Nybegynder
14. december 2004 - 22:29 #11
hvordan det ??
Avatar billede coderdk Praktikant
14. december 2004 - 22:32 #12
Hvis vi antager at du har et billede med navnet fejl404.jpg kunne du gøre sådan:

<?php

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

?>
Avatar billede marzman Nybegynder
14. december 2004 - 22:35 #13
Virker ikke... :D

jeg har 2 filer:
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";

?>

vis.php:

<?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 );


?>
Avatar billede coderdk Praktikant
14. december 2004 - 22:39 #14
hvad er det der ikke virker?
Avatar billede marzman Nybegynder
14. december 2004 - 22:40 #15
den viseer ikke 404.jpg ??!!
Avatar billede coderdk Praktikant
14. december 2004 - 22:41 #16
Prøv at kalde vis.php direkte med: vis.php?fil=volapyk
Det virker fint her :P
Avatar billede marzman Nybegynder
14. december 2004 - 22:43 #17
ja men hvad skal jeg gøre for at få den til at virke på vis_billede.php??
Avatar billede coderdk Praktikant
14. december 2004 - 22:53 #18
Jeg forstår ikke hvad problemet er. Virkede det at linke med vis.php?fil=etbillede.jpg ?
Linker du til vis_billede.php sådan: vis_billede.php?bartsimpson.jpg ?
Avatar billede marzman Nybegynder
15. december 2004 - 07:27 #19
ja... som så sætter min top og bund på...

men vis.php?fil=billede.jpg

så lille billede ikke i mappen og den skulle så åbne 404.jpg men det gør den ikke!!
Avatar billede coderdk Praktikant
15. december 2004 - 11:34 #20
Hvad sker der hvis du prøver med et billede der ikke findes? Du må lave noget forkert, for jeg har prøvet med den kode, og det virker fint.
Avatar billede marzman Nybegynder
17. januar 2006 - 17:49 #21
lukker
Avatar billede coderdk Praktikant
17. januar 2006 - 17:51 #22
Tak, tak.
Avatar billede marzman Nybegynder
17. januar 2006 - 17:54 #23
:D np
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