conserver sélection fichier dans multiupload
Posté : 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...
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...