Ir para conteúdo

POWERED BY:

Arquivado

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

Leandro Vieira Pinho

Validar campo File

Recommended Posts

Olá!Como validar um campo File,preciso, ter a certeza que que está sendo enviado algo, para evitar que alguém escreve algo como [ hflefiejfiejfe ] no campo file.Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

isto é meio complicado pois o máximo que você pode fazer com o tipo file é ler a propriedade value, eu custumo postar o form e testar com uma linguagem dinamica tipo o php, ou outra coisa, pois por questões de segurança o tipo file é bem restrito, pra primeira validação eu uso o js mesmo, mas pelo que você falou também já fez:

 

if ( document.forms[ 'frm' ].arquivo.value == '' ) {  alert( 'campo não preenchido' );}

se descobrir outra forma posta ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,isto é meio complicado pois o máximo que você pode fazer com o tipo file é ler a propriedade value, eu custumo postar o form e testar com uma linguagem dinamica tipo o php, ou outra coisa, pois por questões de segurança o tipo file é bem restrito, pra primeira validação eu uso o js mesmo, mas pelo que você falou também já fez:

if ( document.forms[ 'frm' ].arquivo.value == '' ) {  alert( 'campo não preenchido' );}
se descobrir outra forma posta ae
tentei mas não funcioutentei assim tb... if(frm.prod_foto.value == ""){ frm.prod_foto.focus(); alert("Campo vazio"); return false; }...não teria como , tipo assim, verificar se tem algo como:.gif, .jpg, .png .zip tipo assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

ter tem, mas ai tem que marretar :P

exemplo:

 

<script type="text/javascript">// aqui voce coloca as extenssoes que quer procurarexts = [ 'zip' , 'gif' , 'jpg' , 'ico' , 'doc' ];file   = document.forms[ 'frm' ].input;fOk  = false;for ( i = 0; i < exts.length; i++ ) {  if ( file.value.indexOf( '.' + exts[ i ] ) != -1 ) fOk = true;}if ( ! fOk ) {  alert( 'campo preenchido incorretamente' );  file.focus();  return false;}</script>

isso é meio restritivo e se a pessoa digitar '.zip' por exemplo já passa entende?

por isso que indico utilizar uma aplicação do lado do servidor para testar, que assim não tem falha mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

use lastIndexOf()..ai ele pega os ultimos... fica melhor. pq com o indexOf.. ele pega os primeiros.... então.. como você falou, se a pessoa digitar .zip.. ele passa...tipo .zipArquivo.exeele pode passar.. pq vai encontrar o .zip no inicio... mais o fim é o .exeentão se você pegar o ultimo com lastIndexOf... você pode tentar.zipArquivo.exe que ele vai dar erro.. ou tbm você pode pegar os utlimoas caracters depois do ultimo . (ponto) e verificar

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu, com esse aí não consegui tb.

 

mas achei um script que ta funcionando quase 100%

 

dentro de do head

 

<script LANGUAGE="JavaScript">

<!-- Original: ArjoGod, Shauna Merritt -->

<!-- Modified By: Ronnie T. Moore, Editor -->

 

<!-- This script and many more are available free online at -->

<!-- The JavaScript Source!! http://javascript.internet.com -->

 

<!-- Begin

extArray = new Array(".gif", ".jpg", ".png");

function LimitAttach(form, file) {

allowSubmit = false;

if (!file) return;

while (file.indexOf("\\") != -1)

file = file.slice(file.indexOf("\\") + 1);

ext = file.slice(file.indexOf(".")).toLowerCase();

for (var i = 0; i < extArray.length; i++) {

if (extArray == ext) { allowSubmit = true; break; }

}

if (allowSubmit) alert('Your form would have been submitted, but this is just a demo.');

else

alert("Please only upload files that end in types: "

+ (extArray.join(" ")) + "\nPlease select a new "

+ "file to upload and submit again.");

}

// End -->

</script>

 

no botão submit:

 

<input name="Submit" type="submit" class="button" value="Alterar" onclick="LimitAttach(this.form, this.form.prod_foto.value)" />

 

 

ta funcionando com um porém

 

se eu tento enviar um arquivo tipo .exe, ele acusa que não, pode mas ao cliar no OK, da cx de alerta, ele atualiza, ou seja não trava.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara como eu uso o freASPupload pra fazer meus uploads em ASP e ele não tem este bloqueio, eu faço este teste em JS, fiz este codigo aqui pra validar, basta colocar no array os tipos de arquivos validos, espero que ajude

 

function validar() {

 

var ext = new Array()

ext[0] = ".gif";

ext[1] = ".jpg";

ext[2] = ".jpeg";

ext[3] = ".doc";

ext[4] = ".htm";

ext[5] = ".pdf";

ext[6] = ".ppt";

ext[7] = ".pps";

ext[8] = ".txt";

ext[9] = ".xls";

ext[10] = ".zip";

 

extensao = document.frmInserir.Arquivo.value;

posicao = extensao.indexOf(".");

tamanho = extensao.length;

extensao = extensao.substring(posicao, tamanho);

 

valida = 0;

for (var i = 0; i < ext.length; ++i){

if (ext == extensao){

valida = 1;

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa, pq nenhum ta funcionando comigo:

 

será que estou chamanda a função errado.

 

onsubmit="return validar();"

 

?

pra usar assim tem de mudar um pouco testa isso

 

[tr][/tr][tr][/tr]
ASP function validar() {

 

var ext = new Array()

ext[0] = ".gif";

ext[1] = ".jpg";

ext[2] = ".jpeg";

ext[3] = ".doc";

ext[4] = ".htm";

ext[5] = ".pdf";

ext[6] = ".ppt";

ext[7] = ".pps";

ext[8] = ".txt";

ext[9] = ".xls";

ext[10] = ".zip";

 

extensao = document.frmInserir.Arquivo.value;

posicao = extensao.indexOf(".");

tamanho = extensao.length;

extensao = extensao.substring(posicao, tamanho);

 

var ok = false;

 

for (var i = 0; i < ext.length; ++i){

if (ext == extensao){

ok = true;

}

}

 

return ok;

 

}

 

mas não esque de mudar os dados do campo do formulario

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, funcionou agora,so acrescentei um "alert")fiocu legal valeu

beleza cara http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde posso acrescentar o alert?sou cruzasso em JAva scriptobrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

na hora de validar você poe um alert...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando esse script, funcionou:<script type="text/javascript"> <!-- var errorMessages = new Array(3); errorMessages[0] = "Selecione uma foto para carregar."; errorMessages[1] = "Imagem inválida. Carregue um arquivo com extensão JPG, JPEG."; function validateFilename(that) { if (that.elements.img.value == "") { // Empty upload form displayError(errorMessages[0]); return false; } var ext = that.elements.img.value; var result = ext.lastIndexOf('.'); if (result < 0) { // no extension displayError(errorMessages[1]); return false; } ext = ext.substr(result+1).toLowerCase(); switch (ext) { case 'jpeg': case 'jpg': break; default: // Not one of our happy extensions displayError(errorMessages[1]); return false; } return true; } function displayError(errorMsg) { alert("Erro: Siga corretamente as instruções referente as restrições para enviar a imagem"); } --></script>

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.