Archief - PHP: Fotoalbum

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Pmarcoen

Legacy Member
Ik zit nu al ongeveer 2 dagen te zoeken op een probleem en ik ben echt de wanhoop nabij :p ik hoop dat jullie slimmer zijn als ik :p

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>
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan