Bom dia, postagem rápida por que estou meio ocupado mas agora pouco fiz algo que achei interessante postar pois não encontrei uma forma simples e funcional de validar a extensão do arquivo em um input type=”file”. Então ai vai:
if(formulario.nomedocampo.value) { var arquivo = $('#nomedocampo').val().split(".")[1].toLowerCase(); if(arquivo!="pdf"&&arquivo!="doc"&&arquivo!="docx") { alert("Tipo de arquivo inválido.\nSão aceitos somente arquivos dos tipos: PDF,DOC e DOCX."); return false; } }
Onde:
if(formulario.nomedocampo.value)
Procura o nome do formulário.nome do campo. valor do campo. O campo indicado é o input type=”file” do formulario indicado. Claro que você poderia fazer essa busca através de jquery, mas como estou implementando em um arquivo de validação .js já existente, preferi manter o padrão.
var arquivo = $('#nomedocampo').val().split(".")[1].toLowerCase();
Onde:
$(‘#nomedocampo’) : Seleciona o elemento com o id que você vai definir ao seu input type=”file” .
.val() : Pega o valor do elemento encontrado.
.split(“.”)[1] : Bem, como o valor do elemento vai ser o nome de seu arquivo.extensão, a função split do javascript vai procurar por esse “.” e criar um array de acordo com o número de pontos encontrados. Só para demostrar o exemplo, se o arquivo se chama “joão.doc”, na posição [0] teremos o “joão” e na posição [1] teremos o “doc”.
.toLowerCase() : Transforma o nome da extensão em minúsculo, só para padronizar mesmo…
if(arquivo!="pdf"&&arquivo!="doc"&&arquivo!="docx")
Onde:
você irá fazer a validação normal da extensão do arquivo de acordo com o desejado.
Até mais…
Ahhhh claroooo que a função foi MARTELADA, podem melhorar ela ai por que com certeza eu vou melhorar depois… só postando pra moçada ter uma luz mesmo…
Artigos relacionados...
- jQuery Meio Mask – Máscara para input
- Conexão PHP/MySQL – Utilizando a função mysql_connect()
- Conexão com FTP externo – PHP
- Atualize seu navegador… e de seus visitantes!


Olá amigo
Não quero desmerecer o seu trabalho, longe disso, pois acho muito interessante as pessoas compartilharem o conhecimento através de blogs, porém preciso fazer uns comentários que acho que são importantes.
Se o nome do arquivo for arq.ivo.doc, ele não realiza o upload.
Se o arquivo for uma imagem e eu salvar com a extensão doc, ele passará no upload.
O que acha do que falei?
Abraço
O amigo ai de cima tem razão na parte da extensão. Poderia resolver utilizando algo como:
var arquivo = $(‘#nomedocampo’).val().split(‘.’);
var extensao = arquivo[arquivo.length - 1].toLowerCase();
E validar essa extensão.
Agora a validação está correta, uma imagem não passaria.
Abraço!