Limiter uploads

devdream 33 Messages postés mardi 12 mars 2013Date d'inscription 18 février 2017 Dernière intervention - 4 déc. 2015 à 16:07 - Dernière réponse : Zobibol 469 Messages postés mercredi 9 janvier 2002Date d'inscription 20 février 2017 Dernière intervention
- 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
--
Afficher la suite 

7 réponses

Répondre au sujet
devdream 33 Messages postés mardi 12 mars 2013Date d'inscription 18 février 2017 Dernière intervention - 7 déc. 2015 à 16:29
0
Utile
Personne pour m'aider ?

--
Commenter la réponse de devdream
jordane45 19246 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 7 déc. 2015 à 17:49
0
Utile
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

Commenter la réponse de jordane45
devdream 33 Messages postés mardi 12 mars 2013Date d'inscription 18 février 2017 Dernière intervention - 7 déc. 2015 à 19:00
0
Utile
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.

--
Commenter la réponse de devdream
@karamel 1652 Messages postés vendredi 9 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - Modifié par kazma le 7/12/2015 à 20:03
0
Utile
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 !
Commenter la réponse de @karamel
devdream 33 Messages postés mardi 12 mars 2013Date d'inscription 18 février 2017 Dernière intervention - 17 févr. 2017 à 21:26
0
Utile
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)!');

}
}


--
Commenter la réponse de devdream
devdream 33 Messages postés mardi 12 mars 2013Date d'inscription 18 février 2017 Dernière intervention - 18 févr. 2017 à 10:41
0
Utile
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

--
Commenter la réponse de devdream
Zobibol 469 Messages postés mercredi 9 janvier 2002Date d'inscription 20 février 2017 Dernière intervention - 20 févr. 2017 à 17:34
0
Utile
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>

Commenter la réponse de Zobibol

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.