Pmarcoen
Legacy Member
Ik zit nu al ongeveer 2 dagen te zoeken op een probleem en ik ben echt de wanhoop nabij
ik hoop dat jullie slimmer zijn als ik 
Ik ben op basis van een script (http://www.websitemaken.be/index.php?page=show_script&id=206) een fotoalbum aant maken.
Heb enkele dingen uit dit script gebruikt, onder ander de functie resize_jpg.
Het probleem stelt zich als men een foto wilt uploaden
In mijn script kan ofwel een JPEG ofwel een zip met JPEGs geupload worden.
Bij een enkele JPEG geeft mijn script geen enkel probleem, de JPEG word in de map img/temp/ gezet, daarna word de image gekopieert naar img met BIG_ ervoor, daarna word met het gekopieert naar img met SMALL_ ervoor, die image word daarna geresized met de functie resize_jpg
Bij een zipfile treed het probleem op, de zip word unzipt in img/temp, de zipfile zelf word verwijdert, de imagefiles worden met BIG_ in img gezet, daarna met SMALL_
Maar bij het resizen treed het probleem op, de bestandsnaam word meegegeven en komt op dezelde manier aan als bij een enkele JPEG (geen zip) maar dan wil de imagesize hiervan niet gepakt worden.
Ik zie echt geen verschil met de enkele JPEG, maar om een of andere reden kan de imagesize niet gelezen worden.
SCRIPT :
upload.php
en upload.html waar de file word meegegeven
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form id="form" name="form" method="post" action="upload.php" enctype="multipart/form-data">
<label>Foto :
<input type="file" name="picture" />
</label>
<p>
<input type="submit" name="Submit" value="Submit" />
</p>
</form>
</body>
</html>
ik hoop dat jullie slimmer zijn als ik 
Ik ben op basis van een script (http://www.websitemaken.be/index.php?page=show_script&id=206) een fotoalbum aant maken.
Heb enkele dingen uit dit script gebruikt, onder ander de functie resize_jpg.
Het probleem stelt zich als men een foto wilt uploaden
In mijn script kan ofwel een JPEG ofwel een zip met JPEGs geupload worden.
Bij een enkele JPEG geeft mijn script geen enkel probleem, de JPEG word in de map img/temp/ gezet, daarna word de image gekopieert naar img met BIG_ ervoor, daarna word met het gekopieert naar img met SMALL_ ervoor, die image word daarna geresized met de functie resize_jpg
Bij een zipfile treed het probleem op, de zip word unzipt in img/temp, de zipfile zelf word verwijdert, de imagefiles worden met BIG_ in img gezet, daarna met SMALL_
Maar bij het resizen treed het probleem op, de bestandsnaam word meegegeven en komt op dezelde manier aan als bij een enkele JPEG (geen zip) maar dan wil de imagesize hiervan niet gepakt worden.
Ik zie echt geen verschil met de enkele JPEG, maar om een of andere reden kan de imagesize niet gelezen worden.
SCRIPT :
upload.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?
set_error_handler('oops');
function oops($type, $msg, $file, $line, $context) {
echo "<h1>Error!</h1>";
echo "An error occurred while executing this script. Please contact the <a href=mailto:[email protected]>webmaster</a> to report this error.";
echo "<p />";
echo "Here is the information provided by the script:";
echo "<hr><pre>";
echo "Error code: $type<br />";
echo "Error message: $msg<br />";
echo "Script name and line number of error: $file:$line<br />";
$variable_state = array_pop($context);
echo "Variable state when error occurred: ";
print_r($variable_state);
echo "</pre><hr>";
}
function resize_jpg($img,$w,$h)
{
$imagedata = getimagesize($img);
echo "IMG : $img <br />";
echo "IMGSIZE : $imagedata[0] $imagedata[1]";
echo "<br /><br />";
if ($w && ($imagedata[0] < $imagedata[1]))
{
$w = ($h / $imagedata[1]) * $imagedata[0];
}
else
{
$h = ($w / $imagedata[0]) * $imagedata[1];
}
$im2 = ImageCreateTrueColor($w,$h);
$image = ImageCreateFromJpeg($img);
imagecopyResampled ($im2, $image, 0, 0, 0, 0, $w, $h, $imagedata[0], $imagedata[1]);
ImageJpeg($im2, $img, 100);
}
//Een while lus zodat we met break kunnen werken
while(TRUE){
include('connection.php');
//We halen het bestand op
$bestand = $_FILES['picture'];
if(!isset($_FILES['picture'])) //Als er geen plaatje is meegegeven annuleren we de toevoeging
{
print("Geen plaatje ingevoerd!<br />");
break; //We stoppen de whilelus
}
//Controleren of het van het type JPEG is
if($_FILES['picture']['type'] == "image/jpeg" || $_FILES['picture']['type'] == "image/pjpeg"){
$temptype = @$HTTP_POST_FILES['picture']['type'];
print("");
}
else{
$temptype = @$HTTP_POST_FILES['picture']['type'];
if($temptype != "application/x-zip-compressed" && $temptype != "application/zip"){
print("Alleen JPEGs en ZIPs worden ondersteund!<br />");
break;
}
}
//We kopieëren de file
$name = $_FILES['picture']['name'];
if($temptype == "application/x-zip-compressed" || $temptype == "application/zip"){
$bestemming = "img/temp/" . $name;
$bool[] = copy($_FILES['picture']['tmp_name'],$bestemming);
shell_exec("unzip img/temp/$name -d img/temp/");
unlink("img/temp/" . $name);
}
else {
$bestemming = "img/temp/" . $name;
$bool[] = copy($_FILES['picture']['tmp_name'],$bestemming);
}
$handle=opendir('./img/temp/');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file";
echo "<br />";
//we kopieëren het kleine plaatje
$bestemmingSMALL = "./img/small_" . $file;
$bool[] = copy($_FILES['picture']['tmp_name'],$bestemmingSMALL);
//Er is een plaatje meegegeven. We maken er nu een thumbnail.
if ($handle2 = opendir('.')) {
while (false !== ($file2 = readdir($handle2))) {
if ($file2 != "." && $file2 != "..") {
echo "$file\n <br />";
}
}
closedir($handle2);
}
resize_jpg("./img/small_" . $file,160,120);
$bestemmingBIG = "./img/big_" . $file;
$bool[] = copy($_FILES['picture']['tmp_name'],$bestemmingBIG);
}
}
closedir($handle);
//Controleren of alles gelukt is
if(in_array(FALSE,$bool))
{
print("Er is een probleem opgetreden met het uploaden van de plaatjes. Contacteer de webmaster.<br />");
break;
}
//toevoegen in de database
$sql = "INSERT INTO fotos (ID, PADBIG, PADSMALL) VALUES('','" .$bestemmingBIG . "','" .$bestemmingSMALL . "')";
$result = mysql_query($sql);
if(!$result)
{
print("Probleem met toevoegen foto's aan de database!<br />");
break;
}
print("<b>Foto succesvol toegevoegd!</b><br />");
break;
}
?>
</body>
</html>
en upload.html waar de file word meegegeven
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form id="form" name="form" method="post" action="upload.php" enctype="multipart/form-data">
<label>Foto :
<input type="file" name="picture" />
</label>
<p>
<input type="submit" name="Submit" value="Submit" />
</p>
</form>
</body>
</html>