Limiter uploads

devdream Messages postés 45 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 20 novembre 2019 - 4 déc. 2015 à 16:07
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 - 20 févr. 2017 à 17:34
Bonjour,

J'essaie d'intégrer un uploader dans mon formulaire avec preview avant upload. Pour le preview c'est OK ! Par contre je souhaiterai limiter le nombre de sélection avant upload

J'ai testé ce qui suit mais je n'y arrive pas ;

HTML

<input type="file" style="display:none" id="upload-image" onclick=="verif_up()" multiple="multiple" max-uploads =2 ></input>
<div id="upload" class="drop-area">
<img src="pic.png"/>
</div>


JS

var number_of_uploads;
$("#upload").change(function() {
if(number_of_uploads > $(this).attr(max-uploads))
{
alert('Your Message');
}
else
{
number_of_uploads = number_of_uploads + 1;
}
});


Pourriez vous m'orienter vers une solution? De plus je souhaiterai y intégrer un redimensionnement Ratio avant Upload de la même façon.

Merci d'avance
--

7 réponses

devdream Messages postés 45 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 20 novembre 2019
7 déc. 2015 à 16:29
Personne pour m'aider ?

--
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
7 déc. 2015 à 17:49
Bonjour,

.... si personne ne répond.... c'est que ( au choix )
- Personne ne sait
- Personne n'a comprit la question
- Personne n'en a envie
- Personne n'en a eu le temps

Nb: Un mix de plusieurs réponses peut être fait selon les cas.


Plus sérieusement...
Pourquoi s'embêter lorsqu’il est si facile de prendre un plugin Jquery déjà tout fait et qui, pour certains, proposent de limiter le nombre max de fichiers à uploader.
Il n'y a qu'a regarder par ici par exemple :
http://www.jqueryrain.com/demo/jquery-file-upload/page/2/

Et même si tu ne souhaites pas t'en servir (parce que tu préfères le faire toi même...)... regarder leur code peut te donner une réponse à ton souci

0
devdream Messages postés 45 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 20 novembre 2019
7 déc. 2015 à 19:00
Je dois sans doute être un peu folle, mais j'aimerai vraiment un truc que je comprend. simplement intégrer une limite avec une "alert" précisant cette limite.

--
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
Modifié par kazma le 7/12/2015 à 20:03
je suis pas un connaisseur en jquery plutot le js pur mais pour connaitre le nombre de fichiers qui ont été sélectionné il faut utiliser files.length

$("#upload-image").change(function() {

 alert($(this).files.length)

 {



rien ne sert de courir il faut partir a point.
cours Forest cours !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
devdream Messages postés 45 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 20 novembre 2019
17 févr. 2017 à 21:26
Salut tout le monde,

Toujours pas de situation viable pour mon projet de limiter le nombre d'images avant l'upload... Mon alerte ne m'indique qu'un seul fichier à chaque fois, par contre mes previews me montre toutes mes sélections ! Merci pour votre aide

Voici mon code
ma balise html

<input type="file" id="files" name="files" multiple onchange="checkFiles(this.files)" />


et mon JS





var listeFichiers = document.getElementById('files').files;

function checkFiles(files) {

for (var i = 0; i < listeFichiers.length; i++) {

alert('Vous avez sélectionné ' + listeFichiers.length + ' fichier(s)!');

}
}


--
0
devdream Messages postés 45 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 20 novembre 2019
18 févr. 2017 à 10:41
Je reviens vers vous en précisant que j'ai trouvé une une alternative à mon problème. N'y arrivant pas, j'ai creusé un peu et désormais je compte les occurrences de ma class "image"+1

var nb_element_de_class;
nb_element_de_class=$(".imageThumb").length;
alert(nb_element_de_class +1);


Enfin, c'est pas très propre, mais çà fera l'affaire pour le moment

--
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
20 févr. 2017 à 17:34
Salutation, bigre voilà bien longtemps que je n'étais pas revenu par ici.

Pour ce qui est de comptabiliser le nombre de fichier, j'ai peur que vous ayez froler la solution (de ce que j'ai compris)


La méthode checkFiles à pour paramètre les fichiers (direct)

 onchange="checkFiles(this.files)"


Mais voilà le problème , dans la méthode checkfiles, vous vous appuyer sur le champs files lu directement (donc non renseigné)

var listeFichiers = document.getElementById('files').files;


et c'est cette liste que vous parcourez (listeFichiers) lors du changement de valeur.

Le problème c'est que la liste listFichiers est lue directement sur l'ouverture de la page (du coup elle doit retourner un ou 0, j'hésite)


et c'est juste là, que ça va pas
si je ne m'abuse :
function checkFiles(files){
 alert("vous avez sélectionné: " + files.length);
}

est fonctionnel et retourne bien le nombre de fichier sélectionné.

dans une version plus complète:


<html>
	<head>
		<meta http-equiv="CONTENT-TYPE" content="text/html; charset=UTF-8" >
		<script type="text/javascript">
			function checkFiles(_fileInput){
				var files = _fileInput.files;
				var allMyFiles =  "vous avez sélectionné : " + files.length + "\n";
				for (var idxFile =0; idxFile < files.length; idxFile++){
					allMyFiles += " " + files[idxFile].name +"\n";
				}
				alert(allMyFiles);
			}
			

		function checkFiles_fromJSfr(files) {
				alert('Vous avez sélectionné ' + files.length + ' fichier(s)!');
		}
		
		</script>
	</head>
	<body>
		<input  type="file" id="files"  name="files" multiple onchange="checkFiles(this)" />
		
		
		<input  type="file" id="files_fromJSfr"  name="files_fromJSfr" multiple onchange="checkFiles_fromJSfr(this.files)" />
	</body>
	
</html>

0
Rejoignez-nous