Limiter le nombre d'upload

Mammouth du PHP | 881 Messages

16 déc. 2018, 19:27

Et si tu envoyais plutôt ton message après avoir chargé les trois fichiers comme ceci ...

Code : Tout sélectionner

for(var i=0; i<3; i++) { ... } if (files.length > 3) { error_images += 'Vous ne pouvez pas t&eacute;l&eacute;charger plus de 3 images'; }

Qu'en dirais-tu ?


Bref: tu traites les 1 à 3 fichier(s), puis tu vérifies s'il y en avait d'autres à traiter. Si oui, tu envoies un message décrivant la limite de 3 et listant les fichiers qui ont été pris. Ne restera à l'usager qu'à déduire quels sont les fichiers laissés de côté.
Soyez artisans de paix

Eléphant du PHP | 233 Messages

16 déc. 2018, 20:15

non dès que je remplace for(var i=0; i<files.length; i++) par for(var i=0; i<3; i++) il ne se passe plus rien, je ne peux plus charger aucune image...

Il n'y a pas un moyen juste de les compter et si la valeur est supérieure à 3 on affiche le message (sans que l'utilisateur n'ait à faire une déduction ?)

Mammouth du PHP | 881 Messages

16 déc. 2018, 20:25

Et oui, tu peux faire compter.
Tu définis une variable avant la boucle, puis tu l'incrémentes à chaque fois qu'une image a été chargée avec succès.
Puis, tu vérifies la valeur de la variable, à savoir si elle est égale ou supérieure à la limite souhaitée (dans ton cas 3),
La commande break te fera sortir de la boucle.
Quelque chose comme:

Code : Tout sélectionner

var compte = 0; for (I=0; I<machin.lenght; I++) { //traitement de l'image if (++compte >= 3) { break; } }
Soyez artisans de paix

Eléphant du PHP | 233 Messages

17 déc. 2018, 20:22

Bonsoir,
après avoir encore cherché je pense que le message devrait s'afficher après ceci :

 beforeSend:function(){
     $('#error_multiple_files').html('<br /><label class="text-primary"><img src="img/ajax-loader.gif" /> T&eacute;l&eacute;chargement en cours...</label>');
    }, 
    success:function(data)
    {
     $('#error_multiple_files').html('<br /><label class="text-success">T&eacute;l&eacute;chargement termin&eacute;</label>');
     load_image_data();
    }

si le nombre dépasse 3 en ajoutant une function mais pas un for ?

Mammouth du PHP | 881 Messages

18 déc. 2018, 01:53

Vas-y.
Teste-le.
Lis les messages d'erreur, tente de comprendre ce que les messages d'erreur diront. C'est ainsi que tu progresseras.
Soyez artisans de paix

Eléphant du PHP | 233 Messages

18 déc. 2018, 19:52

Je comprends bien les messages, et ils s'affichent correctement, ce que j'ai du mal à comprendre c'est comment récupérer le message qui suivra, comment sont générés $error_multiple_files ?
Il faudrait ajouter par exemple :

error: function($error_multiple_files) 
      {
    $("#error").html ('<br /><label class="text-primary">Vous avez atteint le maximum d\'images autorisée</label>');
      }

mais comment récupérer cette erreur ?