Beste allemaal,
Ik heb een probleem. Ik heb een upload script gemaakt voor een foto album. Het script verkleint de foto's automatisch. Nu is het probleem dat alle foto's zwart worden.
Heeft iemand enig idee hoe ik dit kan oplossen?
Script:
PHP
<?
error_reporting( E_ALL );
include ("config.php");
$dir = "./"; // map voor albums
if(isset($_POST['versturen']))
{
function randomgenerator($aantaltekens)
{
$kleineletters = range('a','z');
$groteletters = range('A','Z');
$cijfers = range(0,9);
$karakters = array_merge($kleineletters, $groteletters, $cijfers);
$aantal = count($karakters)-1;
$random = null;
for($i=0; $i < $aantaltekens; $i++) {
$random .= $karakters[mt_rand(0, $aantal)];
}
return $random;
}
foreach($_FILES as $afbeelding)
{
$naam = $afbeelding['name'];
$type = $afbeelding['type'];
$temp = $afbeelding['tmp_name'];
$error = $afbeelding['error'];
$size = $afbeelding['size'];
$map = $_POST['map'];
$random = randomgenerator(5);
//--- upload image naar $path
move_uploaded_file($temp, $map .'/'. $random .'-'. $naam);
//--- achterhaal de eigenschappen van de foto
list($breedte, $hoogte) = getimagesize($map .'/'. $random .'-'. $naam);
//--- bepaal de verhouding tussen hoogte en breete
$image_ratio = $hoogte / $breedte;
//--- bepaal of afbeelding verkleint moet worden
$user_breedte = 500;
//--- bereken op basis van de raio de nieuwe hoogte
if($image_ratio > 1){
$rs_breedte = $user_breedte;
$rs_hoogte = $user_breedte * $image_ratio;
}
else{
$rs_hoogte = $user_breedte;
$rs_breedte = $user_breedte / $image_ratio;
}
//--- maak resize image aan in het geheugen
$resize = imagecreatetruecolor($rs_breedte, $rs_hoogte);
//--- bron om te resizen
$source = imagecreatefromjpeg($map .'/'. $radom .'-'. $naam);
//--- foto resize
imagecopyresized($resize, $source, 0, 0, 0, 0, $rs_breedte, $rs_hoogte, $breedte, $hoogte);
// foto opslaan
imagejpeg($resize, $map .'/'. $random .'-'. $naam);
$image = imagecreatefromjpeg($map .'/'. $random .'-'. $naam);
switch($error)
{
case 0:
if(!is_uploaded_file($temp))
{
if($type == 'image/jpeg' || $type == 'image/gif' || $type == 'image/png' || $type == 'image/pjpeg')
{
if($size >= 2024000)
{
echo '<p>Sorry, dit bestand is te groot om te worden geupload!</p>';
}else{
$verplaats = imagejpeg($image, $map.'/'.$random.'-'.$naam);
mysql_query("INSERT INTO fotoalbum (album, url, datum) VALUES ('" . $map. "/', '".$random."-".$naam."', NOW())");
if($verplaats == 1)
{
$oke = 1;
}else{
echo '<p>Er ging iets mis met het uploaden van '.$naam.', neem contact op met de webmaster.</p>';
}
}
}else{
echo '<p>Sorry, dit bestandsformaat accepteer ik niet! ('.$type.')</p>';
}
}else{
echo '<p>Sorry, dit accepteer ik niet!</p>';
}
break;
case 1:
echo '<p>Error: De grootte van het bestand is groter dan wat de server aankan!</p>';
break;
case 2:
echo '<p>Error: De grootte van het bestand is groter dan 1024kb!</p>';
break;
case 3:
echo '<p>Error: Het bestand is maar gedeeltelijk geupload!</p>';
break;
case 4:
//Geen bestand geupload, we doen niks!
break;
}
}
}
if($oke == 1) {
echo '<b>Alle afbeeldingen zijn succesvol geupload.</b><br>';
// Mail versturen.
$bericht = "<html>
<head></head>
<body>
<font face='Verdana' size='1'>
<table bgcolor='#D6D7D7' cellpadding='4' cellspacing='0' width='100%' style='border: 1px solid #FFFFFF'><td width='100%' style='border: 1px solid #C0C0C0'>
<table cellpadding='0' cellspacing='0' width='100%' style='border: 1px solid #C0C0C0'>
<td width='100%'>
<table cellpadding='0' cellspacing='0' width='100%'>
<td width='100%' style='border: 1px solid #2C586F;' bgcolor='#FFFFFF'>
<table cellpadding='0' cellspacing='1' width='100%'>
<td class='content' width='100%' bgcolor='#366C88' height='25'>
<font face='Verdana' size='2' color='#FFFFFF'><b>- Nieuw ingezonden.</b></font>
</td>
</table><table cellpadding='1' cellspacing='1' width='100%'><td width='100%'><font face='Verdana' size='2' color='#366C88'>
Beste websitebeheer,<BR><BR>Er zijn fotos geplaatst op de website.<hr>
<br><br> Wilt u fotos goedkeuren? <br><a href='*******'>Klik dan hier.</a>
</font></td></table></td>
</table>
</td>
</table>
</td>
</table><font size='1'> </font>
</body>
</html>";
$header = "From: WSV-Eemland<[email protected]>\r\n";
$header .= "Reply-To: [email protected]\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/html; charset=iso-8859-1\r\n";
mail("******", "Fotos ingezonden", "".$bericht."", $header);
}
if(isset($_POST['creatdir'])) //als er een nieuwe map aangemaakt moet worden
{
if(!empty($_POST['mapname'])) //en de map naaam is niet leeg
{
if(!is_dir($dir.$_POST['mapname'])) //en als de map nog niet bestaat
{
mkdir($dir.$_POST['mapname'], 0755); //maak de map dan aan
echo 'de map '.$_POST['mapname'].' is aangemaakt<br><br>'; //en echo dat de map is aangemaakt
mysql_query("INSERT INTO albums (naam, datum) VALUES ( '".$_POST['mapname']."', NOW())");
}
else //als de map al bestaat
{
echo 'map bestaat al<br><br>'; //echo dat de map al bestaat
}
}
else //als de mapnaam leeg is
{
echo '<b>de opgegeven bestandsnaam is leeg</b><br><br>'; //echo dat de mapnaam leeg is
}
unset($_POST); //unset de post variabele
}
?>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Album:</legend>
Selecteer een album:
<select name="map" style="z-index: 1;">
<?php
$handle = opendir($dir);
while (($file = readdir($handle)) != FALSE)
{
if (($file != ".") && ($file != "..") && (is_dir($file)))
{
echo '<option value="'.$file.'">'.$file.'</option>';
}
}
?>
</select>
<br />
<div id="weergeefcreate1" onclick="createmap(1)" style="cursor:pointer; float: left;">
<i>Of klik hier en maak een nieuwe map aan</i>
</div>
<div id="createetext1" style="display:none; position:absolute; width: 350px; background-color:#999999; z-index: 3;">
<h4 align="center">Maak een nieuwe map aan</h4>
Nieuwe map naam: <input type="text" name="mapname" /><br />
<br />
<input type="submit" name="creatdir" value="Maak map aan" />
<div id="verbergcreate1" style="display:none;">
<input name="createe_text" type="button" value="cancel" onclick="createmap(1)" />
</div>
</div>
</fieldset>
<fieldset>
<legend>Foto´s:</legend>
<input type="hidden" name="MAX_FILE_SIZE" value="2024000">
<label for="1afbeelding" accesskey="1">1) Foto: </label>
<input type="file" id="1afbeelding" name="1afbeelding" tabindex="5" title="Afbeelding 1 toevoegen"><br>
<label for="2afbeelding" accesskey="2">2) Foto: </label>
<input type="file" id="2afbeelding" name="2afbeelding" tabindex="6" title="Afbeelding 2 toevoegen"><br>
<label for="3afbeelding" accesskey="3">3) Foto: </label>
<input type="file" id="3afbeelding" name="3afbeelding" tabindex="7" title="Afbeelding 3 toevoegen"><br>
<label for="4afbeelding" accesskey="4">4) Foto: </label>
<input type="file" id="4afbeelding" name="4afbeelding" tabindex="8" title="Afbeelding 4 toevoegen"><br>
<label for="5afbeelding" accesskey="5">5) Foto: </label>
<input type="file" id="5afbeelding" name="5afbeelding" tabindex="9" title="Afbeelding 5 toevoegen"><br>
<label for="6afbeelding" accesskey="6">6) Foto: </label>
<input type="file" id="6afbeelding" name="6afbeelding" tabindex="10" title="Afbeelding 6 toevoegen"><br>
<label for="7afbeelding" accesskey="7">7) Foto: </label>
<input type="file" id="7afbeelding" name="7afbeelding" tabindex="11" title="Afbeelding 7 toevoegen"><br>
<label for="8afbeelding" accesskey="8">8) Foto: </label>
<input type="file" id="8afbeelding" name="8afbeelding" tabindex="12" title="Afbeelding 8 toevoegen"><br>
<label for="9afbeelding" accesskey="9">9) Foto: </label>
<input type="file" id="9afbeelding" name="9afbeelding" tabindex="13" title="Afbeelding 9 toevoegen"><br>
<label for="10afbeelding" accesskey="10">10) Foto: </label>
<input type="file" id="10afbeelding" name="10afbeelding" tabindex="14" title="Afbeelding 10 toevoegen"><br>
</fieldset>
<fieldset>
<legend>Versturen</legend>
<input type="submit" name="versturen" value="Versturen" id="versturen" tabindex="15"> <INPUT type="reset" id="wissen" name="wissen" value="Wissen" tabindex="16">
</fieldset>
</form>
Toon Meer
Met vriendelijke groet,
Blackboss