conserver sélection fichier dans multiupload

Eléphanteau du PHP | 15 Messages

23 janv. 2011, 23:33

Bonjour,

Je travaille sur un formulaire avec multiupload de fichier. Mon script filtre les extensions et ne permet que le chargement des fichiers suivants :('jpg','jpeg','png','gif'). J'ai donc un message d'erreur qui apparaît sous le champ correspondant si le fichier choisi n'est pas au bon format.
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...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 janv. 2011, 02:37

salut,

pas de value possible pour un input de type file tu ne peut pas lire sur le pc client


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 15 Messages

25 janv. 2011, 03:02

OK, merci de ta réponse...