Ik heb nu een stukje code geschreven die er voor moet zorgen dat wanneer mensen een foto uploaden die van een te lage resolutie is, afgekeurd wordt. HEt probleem is dat mijn pagina uit een array van userfiles bestaat, dus er moet ook een array aan files gecheckt worden. Hoe doe ik dit nu in hemelsnaam?
Zo ver ben ik al:

<?
if ($_FILES['userfile']['tmp_name'][$i] != "") {
$dimensions = getimagesize($_FILES['userfile']['tmp_name'][$i]);
$breedte = $dimensions[0];
$hoogte = $dimensions[1];
if ($breedte < 1600) {
$resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!";
}
if ($hoogte < 1200) {
$resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!";
}
}
?>
6 valt toch wel mee...

<?
$i = 0;
while ($i < $count) {
// blaat
echo $var[$i];
$i++;
}
?>

Wordt

<?
foreach($var as $key => $value) {
// blaat
echo $value;
}
?>

Of anders iets handiger om te veranderen misschien:

<?
for ($i = 0; $i < $count; $i++) {
// blaat
echo $var[$i];
}
?>


Als ik als winkel een site zou laten maken zou ik willen dat het script goed in elkaar zat en er niet met kunst- en vliegwerk een oplossing is gevonden. Zeker niet als het om een service/deel van de site gaat die klanten kunnen gebruiken.
Ik heb het nu helemaal anders gedaan, met hulp van jullie uiteraard.

ik voeg gewoon dit toe:

<?
//nu maak ik een aparte loop voor de resolutiebepaling
for ($i = 0; $i < $count; $i++) { //voor alle files
if ($_FILES['userfile']['tmp_name'][$i] != "") { //wanneer de file niet niets is
$dimensions = getimagesize($_FILES['userfile']['tmp_name'][$i]); //pak de dimensions
$breedte = $dimensions[0]; //definieer ze
$hoogte = $dimensions[1];
if ($breedte < 1200 || $hoogte < 1200) { //wanneer ze niet toegestaan zijn
$resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!"; //geef deze waarschuwing
}
}
if (!isset($notacceptable[$i]) && {file is geen zip})) { //wanneer het wel een plaatje is
if ($resolutie[$i] != ""){//wanneer de foutmelding bestaat
echo "<font color=\"red\">".$resolutie[$i]."</font><br>";//geef die dan
}
}
}
?>

het enige probleem is dat zipfiles ook in de acceptable types zitten, die moet ik er nog uit filteren. Want de resolutie van een zip is 0x0, dat is van latere zorg; dit werkt. Dus wat ik nu heb gedaan is gewoon een nieuwe loop gemaakt buiten mijn bestaande checkloop, omdat deze loop niet mag bepalen dat een file niet verzonden wordt, maar dat de user een waaschuwing krijgt.
Ok, dat heb ik nu ook gefixt, ik heb er nu dus dit van gemaakt:

<?
//nu maak ik een aparte loop voor de resolutiebepaling
for ($i = 0; $i < $count; $i++) { //voor alle files
if ($_FILES['userfile']['tmp_name'][$i] != "") { //wanneer de file niet niets is
$dimensions = getimagesize($_FILES['userfile']['tmp_name'][$i]); //pak de dimensions
$breedte = $dimensions[0]; //definieer ze
$hoogte = $dimensions[1];
if ($breedte < 1200 || $hoogte < 1200) { //wanneer ze niet toegestaan zijn
$resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!"; //geef deze waarschuwing
}
}
if (!isset($notacceptable[$i]) && $hoogte != 0 && $breedte != 0) { //wanneer het wel een plaatje is
if ($resolutie[$i] != ""){//wanneer de foutmelding bestaat
echo "<font color=\"red\">".$resolutie[$i]."</font><br>";//geef die dan
}
}
}
?>

Want de output van
<?
getimagesize(file.zip);
?>
is 0x0, dus dat filter ik zo eruit. (niet volgens het boekje, maar goed....)

Reageren