Avatar billede jlaw Nybegynder
13. april 2006 - 17:02 Der er 8 kommentarer og
1 løsning

Vis billede med imagejpeg()

Jeg har en fil, test.php som ser således ud

<html>
<body>
<img src="/admin/picture.php" />
<br />
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<input type="file" name="picture" /><input name="vis" type="submit" value="Vis billede" />
</form>
</body>
</html>

og picture.php ser således ud

<?php
header("Content-type: image/jpeg") ;
$val=$_FILES['picture']['tmp_name'];
$im = @imagecreatefromjpeg($val);
  if (!$im) { /* See if it failed */
      $im  = imagecreatetruecolor(150, 30);
      $bgc = imagecolorallocate($im, 255, 255, 255);
      $tc  = imagecolorallocate($im, 0, 0, 0);
      imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
      /* Output an errmsg */
      imagestring($im, 1, 5, 5, "ERROR!!!", $tc);     
  }

imagejpeg($im);
imagedestroy($im);
?>

Hvorfor vises billedet ikke??
$_FILES['picture']['tmp_name'] er åbenbart tom.
Jeg har også prøvet at gemme $_FILES['picture']['tmp_name'] i test.php og så smide den videre gennem url'en, men det virker heller ikke..??
Avatar billede jakobdo Ekspert
13. april 2006 - 19:47 #1
Du skal flytte billedet med: move_uploaded_file()
Efterfølgende har du så billedet i en fil, som du kan bruge videre.
Avatar billede erikjacobsen Ekspert
13. april 2006 - 19:58 #2
Og hvis der er noget i vejen, er det en god idé at fjerne @-ere foran funktionskald - så kan du se eventuelle fejlbeskeder
Avatar billede jlaw Nybegynder
13. april 2006 - 21:17 #3
Tak for svarene, men jeg er ikke interesseret i at uploade billedet - kun se det!

Dette script vil f.eks. virke, som bare er en fil.
<?php
if($_POST['vis']) {
header("Content-type: image/jpeg") ;
$val=$_FILES['picture']['tmp_name'];
$im = @imagecreatefromjpeg($val);
  if (!$im) { /* See if it failed */
      $im  = imagecreatetruecolor(150, 30);
      $bgc = imagecolorallocate($im, 255, 255, 255);
      $tc  = imagecolorallocate($im, 0, 0, 0);
      imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
      /* Output an errmsg */
      imagestring($im, 1, 5, 5, "ERROR!!!", $tc);     
  }

imagejpeg($im);
imagedestroy($im);
}
?>
<html>
<body>
<img src="/admin/picture.php" />
<br />
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<input type="file" name="picture" /><input name="vis" type="submit" value="Vis billede" />
</form>
</body>
</html>
Avatar billede jakobdo Ekspert
13. april 2006 - 21:19 #4
Uploade har du jo allerede gjort.
Når det ligger i dit temp dir, som du bruger via tmp_name.
Du kunne jo så bare lave en fil som hed: tempPicture.jpg og altid overskrive den med nyeste billede og så vise det efterfølgende.
Der er jo intet at spare ellers.
Avatar billede jlaw Nybegynder
13. april 2006 - 21:26 #5
ok.. men hvordan skal jeg så bruge move_uploaded_file() hvis jeg gerne vil kunne bruge det som beskrevet i mit spørgsmål.
$_FILES['picture']['tmp_name'] er jo stadig tom i picture.php
Avatar billede jakobdo Ekspert
13. april 2006 - 21:52 #6
Prøv at se her: http://www.codebreaker.dk/exp/702619.php
Der vil altid kun være et billede, og det bliver så skiftet gang på gang?
Hvorfor ønsker du at bruge imagejpeg() ?
Avatar billede jlaw Nybegynder
13. april 2006 - 22:06 #7
Nu kan jeg følge dig (tror jeg), så hvis jeg bruge move_uploaded_file() istedet for imagejpeg() kan jeg lave det hele i samme fil og så istedet for <img src="/admin/picture.php"> så <img scr="/stien/til/picture.jpg">. Det regner jeg med at skulle virke.

Tak for hjælpen. Du smider bare et svar..
Avatar billede jakobdo Ekspert
13. april 2006 - 22:21 #8
Svar!
Avatar billede jakobdo Ekspert
13. april 2006 - 22:31 #9
Takker for point.
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