Programação, SEO, Troca de Links e dicas de indexação google
Random header image... Refresh for more!

Category — JAVASCRIPT

Verificar extensão do arquivo em um formulário com javascript

Dúvida do Maury sobre javascript surgida em uma lista de php que participo

“Tenho um input file, e quando usuario clica em “arquivo” para escolher o arquivo para fazer upload, abre uma janelinha do windows, até ai tudo normal.Mas quando o usuario escolhar um arquivo eu preciso descobrir a extensão sem usar submit, pois conforme a extensão do arquivo escolhido, alguns campos do formulário serão desabilitados ou não.
Alguem sabe como fazer isso?”

Encontrei então um script na internet que fazia o teste mas era quando você clicava no submit, modifiquei para onblur no input file e funcionou, depois adicionei para que ele limpasse o input em questão e movesse o cursor para lá, sendo assim você pode realizar outras coisas em javascript se assim precisar tanto para em caso positivo quanto para em caso negativo.

Espero que possa ajudar a você e outros visitantes aqui do Blog

Veja aqui o funcionamento do script

<html>
<head>
<META http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<title>Descobrir extens&atilde;o de um arquivo com javascript</title>
</head>
<body>

<input id=”foo” type=”file” onBlur=”checkfileType(’foo’,’.zip’)”>

<script type=”text/javascript”>
function getfileextension(inputId)
{
var fileinput = document.getElementById(”foo”);
if(!fileinput ) return “”;
var filename = fileinput.value;
if( filename.length == 0 ) return “”;
var dot = filename.lastIndexOf(”.”);
if( dot == -1 ) return “”;
var extension = filename.substr(dot,filename.length);
return extension;
}
function checkfileType(inputId,allowedExt)
{
var ext = getfileextension(inputId);
if( ext == allowedExt )
alert(”Passou”);
else
alert(”Voce deve escolher um arquivo .zip”);
document.getElementById(”foo”).value=”";
document.getElementById(”foo”).focus();
return false;
}
</script>

<input type=”button” value=”Get”>

</div>
</body>
</html>

September 9, 2008   2 Comments