This is my form with a file input field named photo:
<form action = "spremi-film.php" method = "POST" enctype = "multipart/form-data">
<div class="grid_2">Naslov:</div>
<div class="grid_10"><input type="text" name="naslov" value="" /></div>
<div class="grid_2">Žanr: </div>
<div class="grid_10"><?php izborZanra(); ?></div>
<div class="grid_2">Godina: </div>
<div class="grid_10"><?php izborGodine(); ?></div>
<div class="grid_2">Trajanje:</div>
<div class="grid_10"><input type="text" name="trajanje" value="" /></div>
<div class="grid_2">Izbor slike:</div>
<!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />-->
<div class="grid_10"><input type="file" name="photo" /></div>
<div class="grid_12"><input type="submit" value="SPREMI" /></div>
</form>
After that i put this code:
$uploaddir = '/slike';
$uploadfile = $uploaddir . basename($_FILES['photo']['name']);
//echo '<pre>';
if(move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile))
{
echo 'Slika je uspješno spremljena!';
}
else
{
echo 'Slika nije spremljena!';
}
//print_r($_FILES);
//echo '</pre>';
When I run this I get an undefined index: photo notice in my browser.
The problem is that
$_FILES['photo']is only defined when the user uploads a file, not during the first execution of the script while displaying the form.Check with
isset($_FILES['photo'])before accessing the variable in the$uploadfile = ...andif (move_uploaded_file(...lines.