Ik heb een formuliertje waarbij er oa een foto kan worden geupload. Ik wil deze foto achter de schermen verkleinen.
Nu loop ik tegen het punt aan, dat ik op mijn manier 2 keer iets naar de header moet sturen, namelijk:
1. Eerst bij het formulier het enctype voor de foto (enctype='multipart/form-data')
2. Om na de post de foto te verkleinen moet ik weer aan de header vertellen dat het een image is, want anders krijg je van die vreemde tekentjes in beeld ;)
Hoe kan ik mijn foto resizen na het versturen van het formulier zonder de 'header already send' foutmelding?
code:
<?
echo "<form action='".$_SERVER['PHP_SELF']."' method='POST' enctype='multipart/form-data'>";
echo "<input type='hidden' name='MAX_FILE_SIZE' value='9999999'>";
echo "<input type='file' name='afbeelding' size='48' value=''>";
echo" <input class='button' type='submit' name='submit' value='verstuur'>";
// na de post komt de handle van de invoer en dus verkleinen van de foto
copy($_FILES["afbeelding"]["tmp_name"], "../afbeeldingen/crop/".$_FILES["afbeelding"]["name"]);
resize('../afbeeldingen/crop/'.$_FILES["afbeelding"]["name"]);
// functie foto resize
function resize($image)
{
$filename = $image;
$width = 200;
$height = 133;
header('Content-type: image/jpeg');
// verkrijg afmetingen
list($width_orig, $height_orig) = getimagesize($filename);
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig)
{
$width = $height*$ratio_orig;
}
else
{
$height = $width/$ratio_orig;
}
// Resize
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Output
imagejpeg($image_p, null, 100);
}
?>
Fer.
278 views