none
Filtrar extensões RRS feed

  • Pergunta

  •  

    Bom dia pessoal,

     

    Existe a possibilidade de o imput abaixo exibir somente arquivos no formato JPG?

     

    <input type="file" name="imagem" id="imagem" />

     

    Fico no aguardo,

    sexta-feira, 11 de abril de 2008 11:51

Respostas

  • Eder, acabei de fazer, testei e parece funcionar, veja se lhe ajuda e faça as adaptações necessárias. Para adicionar mais extensões é só colocar dentro do array.

     

    Obs.: Tem alert só para indicar se é valido ou não, você tira ele.

     

    Code Snippet

    function extension(campo)
    {
     var valido = false;
     var extensions = new Array("jpg","jpeg","xls");
     
     var tc = campo.value.length;
     var up = campo.value.lastIndexOf(".");
     var ex = campo.value.substring(up+1,tc);
     
     for (var i = 0; i < extensions.length; i++)
     {
      if (ex == extensions[i]) { valido = true; }
     }

     alert(valido);
     if (valido == true) { return true; }
     else return false;
    }

     

     

    Abraços

     

    Estevam

    sexta-feira, 11 de abril de 2008 13:13
  • Como você esta fazendo a chamada da função??

     

    Para testes eu fiz assim:

     

    <!-- <input type="button" value="teste" onclick="extension(document.getElementById('id_do_campo_file'));" /> -->

     

    Ou se quiser altere o script para o de baixo, e como parâmetro da função você passo o ID do campo de input file.

     

    Code Snippet

      <script>
      function extension(campo)
      {

       campo = document.getElementById(campo);
       var valido = false;
       var extensions = new Array("jpg","jpeg","xls");
      
       var tc = campo.value.length;
       var up = campo.value.lastIndexOf(".");
       var ex = campo.value.substring(up+1,tc);
      
       for (var i = 0; i < extensions.length; i++)
       {
        if (ex == extensions[i]) { valido = true; }
       }
      
       alert(valido);
       if (valido == true) { return true; }
       else return false;
      }
      </script>

     

     

     

     

    Abraços

     

    Estevam

    sexta-feira, 11 de abril de 2008 13:53

Todas as Respostas

  • Eu acho que você não vai conseguir não, uma vez eu tentei e não obtive sucesso, o jeito foi implementar um validator...

    Da uma olhada em http://msdn2.microsoft.com/en-us/library/aa479405.aspx, ele fala sobre validation no asp:FileUploader, caso você não esteja usando aspx, pdoe procurar no google que tem uns exemplo em js tbm.

     

    Valeu!

     

    sexta-feira, 11 de abril de 2008 12:20
  • Desculpe, me, esqueci de falar. Estou usando ASP...

     

    Será que tem uma forma de fazer sem ser por esse input? Por Java, por exemplo?

     

     

    sexta-feira, 11 de abril de 2008 12:43
  •  

    Consegui encontrar isso aqui (http://www.fyneworks.com/jquery/multiple-file-upload/) mas não consegui usar... ele exibe tudo na lista e quando vc pede pra abrir, se não for a extensão certa, não abre.... é mais ou menos isso q eu preciso...

     

    Se alguém puder me ajudar, agradeço

    sexta-feira, 11 de abril de 2008 12:49
  • Eder, acabei de fazer, testei e parece funcionar, veja se lhe ajuda e faça as adaptações necessárias. Para adicionar mais extensões é só colocar dentro do array.

     

    Obs.: Tem alert só para indicar se é valido ou não, você tira ele.

     

    Code Snippet

    function extension(campo)
    {
     var valido = false;
     var extensions = new Array("jpg","jpeg","xls");
     
     var tc = campo.value.length;
     var up = campo.value.lastIndexOf(".");
     var ex = campo.value.substring(up+1,tc);
     
     for (var i = 0; i < extensions.length; i++)
     {
      if (ex == extensions[i]) { valido = true; }
     }

     alert(valido);
     if (valido == true) { return true; }
     else return false;
    }

     

     

    Abraços

     

    Estevam

    sexta-feira, 11 de abril de 2008 13:13
  • Bom dia Estevam....

     

    Fiz o seguinte com o código q vc me passou:

     

    Code Snippet

    <html>

    <head>
      <script>
      function extension(campo)
      {
       var valido = false;
       var extensions = new Array("jpg","jpeg","xls");
      
       var tc = campo.value.length;
       var up = campo.value.lastIndexOf(".");
       var ex = campo.value.substring(up+1,tc);
      
       for (var i = 0; i < extensions.length; i++)
       {
        if (ex == extensions[i]) { valido = true; }
       }
      
       alert(valido);
       if (valido == true) { return true; }
       else return false;
      }
      
      
      </script>
    </head>

    <body>
      <input type="file" name="campo" id="campo" onchange="extension(this.value)"/>
    </body>

    </html>

     

     

    mas tá dando um erro.... que se refere ao que eu marquei de vermelho.

    Segue o erro abaixo:
    http://189.39.85.66/files/erro.jpg

     

    Será q eu fiz algo errado?

     

     

    sexta-feira, 11 de abril de 2008 13:25
  • Como você esta fazendo a chamada da função??

     

    Para testes eu fiz assim:

     

    <!-- <input type="button" value="teste" onclick="extension(document.getElementById('id_do_campo_file'));" /> -->

     

    Ou se quiser altere o script para o de baixo, e como parâmetro da função você passo o ID do campo de input file.

     

    Code Snippet

      <script>
      function extension(campo)
      {

       campo = document.getElementById(campo);
       var valido = false;
       var extensions = new Array("jpg","jpeg","xls");
      
       var tc = campo.value.length;
       var up = campo.value.lastIndexOf(".");
       var ex = campo.value.substring(up+1,tc);
      
       for (var i = 0; i < extensions.length; i++)
       {
        if (ex == extensions[i]) { valido = true; }
       }
      
       alert(valido);
       if (valido == true) { return true; }
       else return false;
      }
      </script>

     

     

     

     

    Abraços

     

    Estevam

    sexta-feira, 11 de abril de 2008 13:53