Ik ben hier al enkele uren aan het trachten om enkele scripts samen te voegen tot één script. Er is hier namelijk wel een resize en upload script te vinden, maar deze werkt enkel met vervorming.
Nu, het script wat ik tracht te maken is als volgt:

je hebt een bestand upload.php waarvan het eerste gedeelte zorgt voor het uploaden en het checken van extensie. Het tweede gedeelte haalt dan de image uit de uploads folder (waar de file is ge-upload...), resized deze foto in het 1280x800 formaat, en slaat deze op in de uploads/wxga folder. Althans, dat is wat het script ZOU moeten doen. de scritps werken afzonderlijk perfect, maar als ik ze samenvoeg krijg ik volgende error:
Parse error: parse error, unexpected T_VARIABLE in /home/user/kristof.jacobs/www/upload/upload.php on line 58
Iemand enig idee wat er fout gaat? Mijn php kennis is zeer beperkt, maar we leren bij :-)
Hieronder het script:


<?
//In het bovenste gedeelte wordt de file ge-upload

global $_FILES;

$filename = $_FILES['userfile']['name'];

$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "JPG";
$allow[4] = "JPEG";
$allow[5] = "jpeg";

if ($_POST["newname"])
$uploadname = $_POST['newname'];
else
$uploadname = $_FILES['userfile']['name'];

$extentie = substr($uploadname, -3);

for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 7; // om loop te beindigen
}
}

if ($extentie_check)
{
if($_FILES['userfile']['size'] > 999999999) {
echo "Het bestand is te groot!";
} else {
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
move_uploaded_file($_FILES['userfile']['tmp_name'], "uploads/" . $uploadname);

echo "Het bestand is geupload onder de naam: $uploadname";
}

}
}
else
{
echo "De extensie wordt niet toegelaten op deze server!";
}

//Het gedeelte hieronder resized de picture die ge-upload werd.

error_reporting(E_ALL);
// $breedte is nieuwe breedte
// $hoogte is nieuwe hoogte
// $imgFILE waar het plaatje van gemaakt wordt, het orgineel dus (bijv $_FILES['image']['tmp_name'])
// $imgDIR waar het plaatje naartoe verhuisd als ie gemaakt is
// $imgNAME nieuwe naam voor plaatje (bijv. mysql_insert_id () )
// $imgEXTENSION jpg of voor thumbs _th.jpg etc.
// $quality getal tussen de 0 en 100 waarbij 100 beste kwaliteit is

$breedte = '1280';
$hoogte = '800';
$imgFILE = 'uploads/'$uploadname;
$imgDIR = 'wxga/';
$imgNAME = $uploadname;
$imgEXTENSION = '.jpg';
$quality = '100';

function create_new_JPGimage ($breedte, $hoogte, $imgFILE, $imgDIR, $imgNAME, $imgEXTENSION, $quality)
{
//temp_photo voor thumbnail maken
$photo = imagecreatefromjpeg ($imgFILE);

//afmetingen bepalen
$source_x = imagesx($photo);
$source_y = imagesy($photo);

$target_x = $breedte;
$target_y = $hoogte;

//als foto te hoog is
if (($source_x/$target_x) < ($source_y/$target_y))
{
//echo "te hoog";
$from_y = ceil(($source_y - ($target_y * $source_x / $target_x))/2);
$from_x = '0';
$source_used_y = ceil(($target_y * $source_x / $target_x));
$source_used_x = $source_x;
}

//als foto te breed is
if (($source_y/$target_y) < ($source_x/$target_x))
{
//echo "te breed";
$from_x = ceil(($source_x - ($target_x * $source_y / $target_y))/2);
$from_y = '0';
$source_used_x = ceil(($target_x * $source_y / $target_y));
$source_used_y = $source_y;
}

//als verhoudingen gelijk zijn
if (($source_x/$target_x) == ($source_y/$target_y))
{
$from_x = '0';
$from_y = '0';
$source_used_x = $source_x;
$source_used_y = $source_y;
}



//nieuwe image maken en wegschrijven naar dir

$create_blank = imagecreatetruecolor ($target_x, $target_y);

imagecopyresampled ($create_blank, $photo, 0, 0, $from_x, $from_y, $target_x, $target_y, $source_used_x, $source_used_y);

$new_filename = $imgDIR.$imgNAME.$imgEXTENSION;

ImageJpeg($create_blank,$new_filename,$quality);

Imagedestroy($photo);
}


create_new_JPGimage ($breedte, $hoogte, $imgFILE, $imgDIR, $imgNAME, $imgEXTENSION, $quality);
?>
niemand een idee?
Zoek ik op image resize!
ik heb nog een resize functie op breedte die kan je wel gebruiken hoor. deze vervormt ook niet...
ja, mag je altijd eens posten hier. Kan ik het eens bekijken. Probleem is dat bovenstaand resize script perfect werkt, maar dat ik de upload combinatie niet eraan krijg gekoppeld.
Je fout zit hier:

$imgFILE = 'uploads/'$uploadname;

Verander dit in:

$imgFILE = 'uploads/' . $uploadname;

Dan werkt je script perfekt (ik gebruik hem ook!)



Michael
global $_FILES
Dat hoeft helemaal niet. Superglobals zijn standaard altijd al global.
En zet error_reporting(E_ALL); maar op die plaats, dan krijg je ook daadwerkelijk alle errors te zien.

<?php
$extentie = substr($uploadname, -3);
//je geeft zelf nog extensies van 4 letters op, maar knipt er maar 3 af.

for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 7; // om loop te beindigen
}
} ?>
Die for-loop kan makkelijker met in_array().
<?php
if(in_array($extentie, $allow)){
$extentie_check = 'ok';
} ?>

Misschien heb je wat aan mijn Bugreport ^^,

Reageren