Ik ben met PHP een fotoalbum aan het maken, waarbij het mogelijk is om via een webinterface foto's te uploaden die daarna worden verkleind tot 1024x768 pixels (genoeg voor de website waarop het gebruikt wordt) en dan op de schijf worden opgeslagen.
Het uploaden gaat goed, maar er is een probleem met het verkleinen van de foto's.
Hiervoor gebruik ik deze functie:
De functie kan ik aanroepen met: $this->Thumbnail( ) en tussen de haakjes de 3 parameters: locatie afbeelding, breedte van de afbeelding en jpeg-compressie.
Dat geeft het volgende probleem:
Warning: imagecreatefromjpeg(/opt/apache2/htdocs/fotos/228.jpeg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /opt/apache2/htdocs/beheer/_inc/fotoalbum.inc.php on line 366
Terwijl het bestand wel bestaat.
Als ik in de functie deze regel:
$img = imagecreatefromjpeg( $uploadfile );
vervang door dit:
$img = imagecreatefromjpeg( '/opt/apache2/htdocs/fotos/228.jpeg' );
werkt het wel.
Dus als de waarde wordt doorgegeven via een variabele werkt het niet. En als ik de waarde handmatig invoer werkt het wel.
Wat doe ik fout?
Het uploaden gaat goed, maar er is een probleem met het verkleinen van de foto's.
Hiervoor gebruik ik deze functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| private function Thumbnail( $uploadfile, $nw, $c ) { $img = imagecreatefromjpeg( $uploadfile ); $ow=imagesx( $img ); // ow = old width $oh=imagesy( $img ); // oh = old height $scale=$nw/$ow; // nw = new width, ow = old width $nh=ceil( $oh*$scale ); // nh = new height $newimg=imagecreatetruecolor( $nw,$nh ); imagecopyresampled( $newimg,$img,0,0,0,0,$nw,$nh,$ow,$oh ); imagejpeg( $newimg,$uploadfile, $c ); return TRUE; } |
De functie kan ik aanroepen met: $this->Thumbnail( ) en tussen de haakjes de 3 parameters: locatie afbeelding, breedte van de afbeelding en jpeg-compressie.
Dat geeft het volgende probleem:
Warning: imagecreatefromjpeg(/opt/apache2/htdocs/fotos/228.jpeg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /opt/apache2/htdocs/beheer/_inc/fotoalbum.inc.php on line 366
Terwijl het bestand wel bestaat.
Als ik in de functie deze regel:
$img = imagecreatefromjpeg( $uploadfile );
vervang door dit:
$img = imagecreatefromjpeg( '/opt/apache2/htdocs/fotos/228.jpeg' );
werkt het wel.
Dus als de waarde wordt doorgegeven via een variabele werkt het niet. En als ik de waarde handmatig invoer werkt het wel.
Wat doe ik fout?