Hallo,

ik heb een klein formpje met daarin 2 velden om plaatjes te kunnen uploaden. Nu wil ik dat als er geen bestand is ingevoerd dat er dan ook niet word geupload. Dit is de code die ik heb:


<form name="voegtoe" method="POST" action="voegtoe.php?kaart=<?php echo veilig($_GET['kaart']); ?>" enctype="multipart/form-data">
<tr><td align="left" valign="top">Foto 1:</td><td align="left"><input type="file" name="foto1" value="<?php echo $foto1; ?>" size="25" /></td></tr>
<tr><td align="left" valign="top">Foto 2:</td><td align="left"><input type="file" name="foto2" value="<?php echo $foto2; ?>" size="25" /></td></tr>

<?php
    if (is_file($_FILES['foto1'])) { 
		$foto1 = upload($_FILES['foto1']['tmp_name'], $_FILES['foto1']['name'], $map1, $max1, $ext1);
		echo "1";
	}
    if (is_file($_FILES['foto2'])) { 
		echo "2";
		$foto2 = upload($_FILES['foto2']['tmp_name'], $_FILES['foto2']['name'], $map1, $max1, $ext1);
	}
?>


Dit is even een kleine selectie, het is niet nodig alles te plaatsen. Het probleem is, is dat dit niet werkt: if (is_file($_FILES['foto2'])) {
En ook if (isset($_FILES['foto2'])) { werkt niet. Bij de eerste geeft hij altijd false, en bij de laatste altijd true.
$_FILES is een array() dus dat kan je niet checken met is_file(). En een value opgeven bij type="file" gaat je ook niet lukken lijkt mij.
Zie [php]is_uploaded_file[/php]().
Bedankt voor je reactie,

Heb ik het mis als is_uploaded_file() kijkt of een bestand is geupload NA het uploaden?
Ik wil graag niet uploaden als er ook geen file is ingevoerd. Dus kijken of er geupload moet worden VOOR dat er iets gedaan wordt.

En even offtopic over value bij type='file', als er om 1 of andere reden iets niet goed is ingevoerd dan blijft hij op het invoerveld staat met de nodige errors. Alle ingevoerde gegevens zijn dan niet verloren gegaan omdat ik dit altijd doe:

<tr><td align="left" valign="top">Titel:</td><td align="left"><input type="text" name="titel" value="<?php echo $titel; ?>" size="25" maxlength="200" /></td></tr>

Dus als er een fout is zal er geen file worden geupload en hoopte ik dat php weer het path naar het file terugzet, zodat de gebruiker die niet opnieuw hoeft in te voeren.

Heb ik het mis als is_uploaded_file() kijkt of een bestand is geupload NA het uploaden?
Ik wil graag niet uploaden als er ook geen file is ingevoerd. Dus kijken of er geupload moet worden VOOR dat er iets gedaan wordt.


Met javascript zou je dan moeten gaan werken. Zoals ik denk wat jij bedoel.

Als er niks is ingevuld bij <input type="file"> dan valt er toch niks te uploaden.
nee inderdaad, maar het punt is dat de oude waarde van de database niet moet worden overschreven met niks. Maar als er niks wordt geupload wil de gebruiker dus zijn oude plaatje houden.

Hoe kan ik met php kijken of er in input type file niks is ingevult?
is dat niet gewoon standaard $_POST waarde controleren of deze leeg is of niet?
<?php
if(empty($_FILES)) {
// niks uploaden
} else {
// wel uploaden
}
?>
<?php
foreach($_FILES as $file)
{
}
?>

Dan pak je alleen de ingevulde velden volgens mij.

Reageren