Je travaille sur un formulaire avec multiupload de fichier. Mon script filtre les extensions et ne permet que le chargement des fichiers suivants
Mon soucis est le suivant :
Si dans mon premier upload, le fichier sélectionné est correct et que dans mon second upload, il ne l'est pas (ex :.pdf,.ai,etc), le message d'erreur apparaît sous le champ du second upload mais je perd la sélection de mon premier fichier... Or, je voudrais bien conserver cette première sélection...
Voici les scripts :
<?php
$avatar = $_FILES['avatar'];
$avatar2 = $_FILES['avatar2'];
$avatar_name = $avatar['name'];
$avatar2_name = $avatar2['name'];
$ext = strtolower(substr(strrchr($avatar_name,'.'),1));
$ext2 = strtolower(substr(strrchr($avatar2_name,'.'),1));
$ext_aut = array('jpg','jpeg','png','gif');
function check_extension($ext,$ext_aut)
{
if(in_array($ext,$ext_aut))
{
return true;
}
}
function check_extension2($ext2,$ext_aut)
{
if(in_array($ext2,$ext_aut))
{
return true;
}
}
$valid = (!check_extension($ext,$ext_aut)) ? false : true;
$valid = (!check_extension2($ext2,$ext_aut)) ? false : true;
$erreuravatar = (!check_extension($ext,$ext_aut)) ? 'Veuillez charger une image au format jpg, jpeg, png ou gif' : '';
$erreuravatar2 = (!check_extension2($ext2,$ext_aut)) ? 'Veuillez charger une image au format jpg, jpeg, png ou gif' : '';
if($valid)
{
$max_size = 2000000;
if($avatar['size']>$max_size)
{
$valid = false;
$erreuravatar = 'Fichier trop gros';
}
}
if($valid)
{
$max_size = 2000000;
if($avatar2['size']>$max_size)
{
$valid = false;
$erreuravatar2 = 'Fichier trop gros';
}
}
if($valid)
{
if($avatar['error']>0)
{
$valid = false;
$erreuravatar = 'Erreur lors du transfert';
}
}
if($valid)
{
if($avatar2['error']>0)
{
$valid = false;
$erreuravatar2 = 'Erreur lors du transfert';
}
}
if($valid)
{
$path_to_image = 'images/';
$filename = sha1(uniqid($avatar_name));
$filename2 = sha1(uniqid($avatar2_name));
$source = $avatar['tmp_name'];
$target = $path_to_image . $filename. '.'. $ext;
$source2 = $avatar2['tmp_name'];
$target2 = $path_to_image . $filename2. '.'. $ext2;
move_uploaded_file($source,$target);
move_uploaded_file($source2,$target2);
$nom_image = $filename.'.'.$ext;
$nom_image2 = $filename2.'.'.$ext2;
$success = 'Upload ok';
}
?>
<body>
<p><label for="avatar">Charger la photo de face :</label>
<input type="file" name="avatar" />
<br /><?php if(isset($success)):?>
<div class="success"><?php echo $success;?></div>
<?php endif;?>
<div class="error"><?php if(isset($erreuravatar)):?>
<div class="error"><?php echo $erreuravatar;?></div>
<?php endif;?></div>
</p>
<p>
<label for="avatar2">Charger la photo de profil :</label>
<input type="file" name="avatar2" />
<br /><?php if(isset($success)):?>
<div class="success"><?php echo $success;?></div>
<?php endif;?>
<div class="error"><?php if(isset($erreuravatar2)):?>
<div class="error"><?php echo $erreuravatar2;?></div>
<?php endif;?></div>
</body>
Est ce qu'il existe une méthode similaire au print("selected") d'une liste déroulante ?
Merci d'avance de votre aide...