Bonjour, alors voila mon soucis :
J'ai 2 input de type file dans le même formulaire :
<div class="form-group">
<label for="image" class="label-form">Image de présentation</label>
<input type="file" class="input-form" name="image">
</div>
<div class="form-group">
<label for="image hover" class="label-form">Image de survol <span style="font-style: italic;">Facultatif</span></label>
<input type="file" class="input-form" name="image_hover">
</div>
mon soucis c'est que lorsque je soumet la même image dans chaque input (car je veut tester si l'utilisateur met la même image par erreur) sa ne me fait rien et sa me retourne a la page add.
alors que dans ma fonction add j'y est mis :
if (!empty($_POST)) {
var_dump($_POST, $_FILES);
die();
}
merci de m'éclairer sur comment je pourrais faire pour me débloqué.
Cordialement,
xander
Alors essaye ceci:
if (!isset($_FILES)) {
return false;
}
$img = $_FILES['image'];
$img_h = isset($_FILES['image_hover']) ? $_FILES['image_hover'] : null; // On vérifie si la seconde image est bien définie
// On lance la comparaison seulement si la seconde image existe !
if(!is_null($img_h)){
/** On vérifie que la taille des deux images soit la même car il se peut que
* les deux images aient un nom identique sans pour autant que ce soit les mêmes
**/
if ($img['name'] == $img_h['name'] && $img['size'] == $img_h['size']) {
// ton traitement ici
}
}
Par contre, est-ce que l'utilisateur va obligatoirement en mettre deux à la fois ou bien il peut choisir de n'en uploader qu'une ? Car c'est un cas de plus à prendre en compte à ce moment là.
Salut,
Je pense que tu devrais passer par une solution JS pour tester si l'utilisateur a mis 2x la même image.
Sinon tu peux essayer un truc du genre
if (!isset($_FILES)) {
return false;
}
if ($_FILES['image']['x-file-name'] == $_FILES['image_hover']['x-file-name']) {
// ton traitement ici
}
Après je ne suis pas sur de moi concernant le nom 'x-file-name', essayes de var_dumper le tableau $_FILES en premier lieu afin de voir ce qu'il contient et renvoies-nous le résulat.
Voici un vardump du $_FILES et ce qu'il renvoie
array (size=3)
'image' =>
array (size=5)
'name' => string '266534.jpg' (length=10)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'E:\wamp\tmp\php7A26.tmp' (length=23)
'error' => int 0
'size' => int 152801
'image_hover' =>
array (size=5)
'name' => string '266534.jpg' (length=10)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'E:\wamp\tmp\php7A27.tmp' (length=23)
'error' => int 0
'size' => int 152801
'files' =>
array (size=5)
'name' =>
array (size=1)
0 => string '' (length=0)
'type' =>
array (size=1)
0 => string '' (length=0)
'tmp_name' =>
array (size=1)
0 => string '' (length=0)
'error' =>
array (size=1)
0 => int 4
'size' =>
array (size=1)
0 => int 0
je vais tester ta solution vers 17h je reviens ensuite merci pour ta réponse rapide
il a le choix la 2ème est facultatif mais je voulais prendre en compte l'erreur qui mette 2 fois la même. Je vais essayé sa thx u