Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

matheusjas

Limitar quantidade de arquivos enviados do input file html5

Recommended Posts

Boas galera, tudo bem?

 

Bom, estou tentando limitar a quantidade de arquivos a serem enviados através de um input file multiple do HTML5. Por exemplo:

 

HTML

<!DOCTYPE>
<html>
<head>
<title>Página</title>
</head>
<body>
<form name="form" action="acao.php" method="post" enctype="multipart/form-data">
<input type="file" class="uploadClassificado" name="img[]" multiple="multiple">
<input type="submit">
</body>
</html>

JS

$('.uploadClassificado').change(function(){
	var file = new Array();
	var file = $(this).val();

        alert(file);
});

Bom, a estrutura do javascript (jQuery) usada inicialmente está sendo essa. Ja tentei usar for e vários outros métodos de tratamentos de arrays mais não consigo retornar a quantidade de arquivos que foram selecionados.

 

Quando uso

var file = $(this).val();
alert(file.length);

Ao invés dele retornar a quantidade de arquivos selecionado, ele retorna a quantidade de caracteres do caminho de 1 arquivo.

 

Alguém sabe como faço para limitar a quantidade de arquivos do input file do html5 somente por JS/jQuery?

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º Cara primeiramente voce deve usar um laço(loop), foreach, etc, para que possa ser recupera cada resultado separadamente.

2º Acostume-se a utilizar console.log(); ou crie uma funcao inline: log = function(v){return console.log(v)}

 

Tente o console.log e reporte, o alert geralmente não vai mostrar o que voce quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas galera, bom Thadeu Esteves. Utilizei o console.log(); para ver o que retornaria. O loop for do javascript ao invés de me retornar os nomes dos arquivos selecionado, ele retorna cada letra do primeiro arquivo.

 

Por exemplo, seleciona 10 arquivos, sendo que o primeiro arquivo chama Casa.jpg. O for do javascript retorna para mim assim: C, a, s, a, ., j, p, g

 

Sendo que preciso que seja o nome de cada arquivo.

 

Obs: O input utilizado é o file multiple do html5



Galera, já consegui resolver.

 

$('.uploadClassificado').change(function(){
    var files = this.files; // SELECIONA OS ARQUIVOS
    var qtde = files.length; // CONTA QUANTOS TEM

    if(qtde > 5) { // VERIFICA SE É MAIOR DO QUE 5
     	alert("Não é permitido enviar mais do que 5 arquivos.");
       	$(this).val("");
       	return false;
    } else { // SE NÃO FOR MAIS DO QUE 5 ELE CONTINUA.
       	return true;
    }
});

 

Obrigado! (:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.