Hallo allemaal,
Voor een website ben ik bezig met een script om een afbeelding die ik upload te resizen.
Ik ben hier al een aardig poosje mee bezig maar loop er telkens op vast.
De code die ik nu heb is al volgt:
<?php
$errors = array( );
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
echo "<form action='admin.php' method='post' enctype='multipart/form-data' />
<p><input type='file' name='foto' value='' size='30' /></p>
<p><label>Korte beschrijving:</label><br>
<input type='text' name='alt' class='field' value='' /></p>
<p><label>Project naam:</label><br>
<input type='text' name='project' class='field' value='' /></p>
<input type='hidden' name='formtype' value='uploadfile' />
<p><input type='submit' name='submit_top' class='uploaden' value='Uploaden' /></p>
</form>";
$UploadMap = 'images/projecten/';
$FotoNaam = '';
$MaxFotoSize = 5000000;
$FotoExt = array('.jpg', '.jpeg', '.gif', '.png');
$FotoMIME = array ('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif');
if (isset($_POST['submit_top']) && isset($_POST['formtype'])) {
if (!isset($_FILES['foto']['name'])) {
echo "<p class='error'>Geen foto geselecteerd.. <span class='close'>X</span></p>";
} elseif (empty($_POST['alt'])) {
echo "<p class='error'>Er moet een beschrijving ingevuld worden! <span class='close'>X</span></p>";
} elseif (empty($_POST['project'])) {
echo "<p class='error'>Er moet een project naam ingevuld worden! <span class='close'>X</span></p>";
} else {
$Foto = $_FILES['foto']['name'];
$FotoNaam = $UploadMap . $_FILES['foto']['name'];
if (file_exists($FotoNaam)) {
echo "<p class='error'>Er bestaat al een foto met deze naam! <span class='close'>X</span></p>";
} else {
$width = 466;
$height = 140;
list($width_orig, $height_orig) = getimagesize($FotoNaam);
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($FotoNaam);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, $FotoNaam, 100);
$alt = empty($_POST['alt']) ? die ("") : mysql_real_escape_string($_POST['alt']);
$project = empty($_POST['project']) ? die ("") : mysql_real_escape_string($_POST['project']);
$p_query = "INSERT INTO top (src, title, alt) VALUES ('$FotoNaam', '$project', '$alt')";
$p_result = mysql_query($p_query) or die ("<p class='error'>Error in query: $p_query.<span class='close'>X</span></p>".mysql_error());
echo "<p class='update'>De gekozen foto is geupload en toegevoegd aan de website! <span class='close'>X</span></p>";
}
}
}?>
En de errors die ik hierbij krijg zijn de volgende:
<?php Warning: getimagesize() [function.getimagesize]: Unable to access images/projecten/kieboom.jpg in *link* on line 307
Warning: getimagesize(images/projecten/kieboom.jpg) [function.getimagesize]: failed to open stream: No such file or directory in *link* on line 307 ?>
Na een beetje google werk kom ik uit op het toevoegen van een header met Content-Type:
<?php header('Content-Type: image/jpeg'); ?>
Buiten dat dit alleen voor jpg afbeeldingen is volgens mij, werkt het ook niet want dan krijg ik de volgende error:
<?php Warning: Cannot modify header information - headers already sent by ?>
Korte samenvatting is dat ik daar de bomen en de fouten die ik telkens krijg het bos niet meer zie en ik vast loop.
Zou erg dankbaar zijn als iemand me kan verder helpen hier!
Ronny :)
1.868 views