Ir para conteúdo

POWERED BY:

Arquivado

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

webfuture

Como pegar extensão de imagem a partir do TEXT

Recommended Posts

Olá galera, me surgiu uma dúvida, estou montando um formulário de upload de imagens e ao invés de tratar tamanho de imagem, formatos, etc.. na pagina que recebe os dados, pensei em quando o usuário selecionar a imagem com javascript analisar, se for extensao ".jpg", ".jpeg", ".bmp" ou ".gif" ele deixa o botão Enviar ativo, caso contrário não deixa. Minha dúvida é como fazer isto ? Tenho alguma idéia em mente mas não sei como fazer para ele pegar os 3 ultimso caracteres do que vem no campo text, alguém sabe como fazer isto ou qual a função que pega os 3 ultimos caracteres de um campo ?Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode dar um split da "/" (assim você vai conseguir pegar o ultimo indice, ou seja vai eliminar o caminho e pegar o nome do arquivo)...depois, você da outro split de "." (assim você vai conseguir pegar o ultimo indice que é a extensão)...depois é só comparar ;)tipo:var bla;bla = caminho.split("/");bla = bla[ (bla.length-1) ].split(".")bla = bla[ (bla.length-1) ]; // aqui você vai ter tua extensao...tem como saber se é um arquivo de imagem válido tbm... é só você usar o FSO ;)qq duvida, poste!:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá MadPatryk, valeu pelo código, adaptei aqui e esta funcionando perfeito, me surgiu uma dúvida agora, como fazer para ele mudar o atributo do campo submit, tipo se o campo estiver vazio o submit é disabled caso contrário, se for uma extensao valida fica ativo.

 

Olha o formulario e o código JS:

 

function analisa() {caminho = document.getElementById('file').value;var extensao;extensao = caminho.split("/");extensao = extensao[ (extensao.length-1) ].split(".")extensao = extensao[ (extensao.length-1) ];if (extensao != "jpg" && extensao != "gif" && extensao != "bmp") {document.getElementById('botao').value = "desativado";}else{document.getElementById('botao').value = "ativado";}}<form action="minhasfotos_upload.asp" method="post" enctype="multipart/form-data"><table align="center"><tr><td height="10"></td></tr><tr><td colspan="2" class="formato2">Enviar foto:</td></tr><tr><td height="10"></td></tr><tr><td colspan="2" class="formato2">Título:</td></tr><tr><td><input type="text" size="33" name="nome_foto" class="form"/></td></tr><tr><td colspan="2" class="formato2">Descrição:</td></tr><tr><td><textarea name="descricao_foto" class="form" cols="35" rows="7"></textarea></td></tr><tr><td><input type="file" size="18" Onchange="analisa();return false;" name="file" class="form"/></td></tr><tr><td height="10"></td></tr><tr><td align="right"><input type="submit" value="Enviar foto" name="botao" class="form"/></td></tr></table></form>

No JS fiz apenas um teste mudando o value do botão quando ativo ou desativo..

 

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, fiz uns testes aqui e consegui, segue abaixo o código:

 

function analisa() {if (document.getElementById('file').value == "") {formfotos.botao.disabled = true;formfotos.botao.value = 'Selecione a foto';}else{caminho = document.getElementById('file').value;var extensao;extensao = caminho.split("/");extensao = extensao[ (extensao.length-1) ].split(".")extensao = extensao[ (extensao.length-1) ];if (extensao != "jpg" && extensao != "gif" && extensao != "bmp") {formfotos.botao.disabled = true;formfotos.botao.value = 'Escolha a foto';}else{formfotos.botao.disabled = false;formfotos.botao.value = 'Enviar foto';}}

Valeu,

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, uma coisa que notei é o seguinte, esta função funciona se o valor extensao estiver exatamente como no micro do usuario por exemplo se a foto estiver como eu.JPG e no script estiver a extensao jpg ele não passa, ou vice versa, acredito que JpG também, estas combinações, ou seja tem que estar exatamente do mesmo jeito, minha pergunta é, existe alguma função em JS do tipo LowerCase ? deixar tudo minusculo ?Se tiver, que acredito que tenha, resolve, dei uma procurada mas não achei,Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, uma coisa que notei é o seguinte, esta função funciona se o valor extensao estiver exatamente como no micro do usuario por exemplo se a foto estiver como eu.JPG e no script estiver a extensao jpg ele não passa, ou vice versa, acredito que JpG também, estas combinações, ou seja tem que estar exatamente do mesmo jeito, minha pergunta é, existe alguma função em JS do tipo LowerCase ? deixar tudo minusculo ?

 

Se tiver, que acredito que tenha, resolve, dei uma procurada mas não achei,

 

Xavier

Tente

extensao.toLowerCase() != "jpg"

Uma idéia, existe extensões JPEG.

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.