Hoi

Ik heb een scriptje geschreven waar je een jpg kan uploaden en daarna resizen en wegschrijven.

Ik heb in de form een maximum file size opgegeven van 256kB.

Indien deze jpg groter is dan vang ik dit op via


if ($_FILES['upload']['error'] == 2 || $_FILES['upload']['error'] == 1)
{
$error = 3;
}


Het probleem is dat ik meteen na mijn submit al een foutmelding krijg.
(<b>Warning: MAX_FILE_SIZE of 256000 bytes exceeded - file [upload=C:\Dxx not saved in Unknown on line 0)</b>.

Ik heb deze foutmelding proberen onderdrukken met error_reporting(0); te gebruiken....hetgeen niets uithaalt....evenmin werkt
ini_set(display_errors, 0); of output buffering werkt ook niet (ob_start(); ob_end_clean(); )

De foutmelding wordt meteen doorgegeven op het scherm vooraleer hij ook maar verder het script uitvoert...dit werkt namelijk ook niet:

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if ($_FILES['upload']['error'] == 2 || $_FILES['upload']['error'] == 1)
{
$error = 3;
}
}

Suggesties iemand?

Waarvoor dank!
<?
$filenaam = $_FILES['upfile']['name'];
if ($filenaam != ''){

$uploaddir = "uploads/";
$uploadfile = $uploaddir . $_FILES['upfile']['name'];
if (move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile)) {
print "File is geupload";
} else {
print "error file is niet geupload";
}
}

?>

uploaden met deze script word gewoon alles geupload wat je maar wil.
zal nog eens even kijken hoe je max file sze enzo verandert
<?
$upload_dir = "uploads/";
$size_bytes = 2512000;
$extlimit = "yes";
$limitedext = array(".gif",".jpg",".jpeg",".png",".txt",".nfo",".doc",".htm",".zip",".rar");
//// groodte
if ($file_size > $size_bytes){
echo "Error: bestand is te groot. max <b>". $size_bytes / 1024 ."</b> KB. <br>»<a href=\"$_SERVER[PHP_SELF]\">back</a>";
exit();
}
///extentie
$ext = strrchr($file_name,'.');
if (($extlimit == "yes") && (!in_array(strtolower($ext),$limitedext))) {
echo("Error: extentie niet juist. ");
exit();
}
///bestand staat al online

if(file_exists($upload_dir.$file_name)){
echo "Oops! het bestand met naam<b>$file_name</b> already exists. <br>»<a href=\"$_SERVER[PHP_SELF]\">back</a>";
exit();
}

///spaties in bestandsnaam
$file_name = str_replace(' ', '_', $file_name);
?>

dit is het belangrijkste denk ik ken er zelf ook ni veel van
het uploaden gebeurt bij mij via de form en daar zit het probleem.

Voor de rest werkt mijn scirpt uitstekend (uploaden, preview, resize, wegschrijven)

hij geeft hier gewoon een probleem:
<?
<form name="form1" enctype="multipart/form-data" method="post" action="" >
<input type="hidden" name="MAX_FILE_SIZE" value="256000" />
<input name="upload" type="file" style="height:25px;" value=""/>
<input type="submit" value="Preview" name="submit" style="height:25px;"/><br><br>
<?php if ($error == 1){echo "<font color='red'> Er is een probleem met de opgegeven link </font>";}
elseif($error == 3) {echo "<font color='red'> De grootte van het opgegeven bestand overschrijdt 250kB </font>";}?>
</form>
?>

Maar blijkbaar is dit enkel lokaal, want als ik het op een andere server draai dan doet hij de error handling zoals ik het wil......

zal waarschijnlijk aan apache liggen of php.ini

toch bedankt :)
Je weet dat MAX_FILE_SIZE niet moeilijk te omzeilen is en daarom niet echt betrouwbaar is?
Het zou ook te maken kunnen hebben met php.ini, daar staat ergens de volgende regel:


; Maximum allowed size for uploaded files.
upload_max_filesize = 2M


Dus zelfs als je geen MAX_FILE_SIZE gebruikt, wordt de maximale grootte bepaald door php.ini.

Reageren