Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
alguém sabe como faço para filtrar os arquivos que devem ser selecionados pelo input type="file" de forma que na tela
apareça os arquivos apenas das extensões permitidas?
Obrigado desde já
Creio que deve haver uma maneira no html, como um valor de atributo.
Por exemplo, se eu quiser usar o campo input type file para fazer upload de muitas imagens
ao mesmo tempo é possível usando o atributo multiple e valor multiple,
ex.:
<input type="file" name="upload[]" multiple="multiple" />
Da mesma forma deve haver um atributo para limitar isso. Já vi isso em um site antes mas não lembro onde.
Sei que existe um valor chamado accept não sei se esse atributo é pra isso, pois usei e não funcionou.
alguns sites diziam pra usar accept="mime-type", mas creio que não é pra o que eu quero.
Bom, vou pesquisar mais sobre isso. Estou impossibilitado de usar flash de qualquer forma. :) obrigado mesmo assim
Em que navegador você testou ? aqui no meu Firefox, esse atributo: 'multiple' não foi aceito, e só me permitiu selecionar um unico arquivo.
oque você viu, deve ser algo como o autocomplete="off" que 'não existe', mas alguns browsers implementam.
Das especificações do HTML eu não me lembro de ter visto nada do tipo, e como já vi 'muitos tentando' isso, te disse que não é possível, pois eu nunca vi ^_^
Olá Jair,
Nunca vi nada parecido com isso utilizando html...
mas você pode utilizar Jquery pra fazer essa verificação...
tem ótimos tutoriais a respeito na própria documentação do jquery...
uma que achei em português é esse...
http://www.gladsonroberto.com.br/validar-extensao-de-arquivo-jquery/
É um pouco diferente do que você postou... pois nele não aparecerá na tela apenas os arquivos de tal tipo...
mas sim só aceitará arquivos dos tipos que você decide... Isso ajuda?
abraço!
William Bruno,
aqui funcionou no firefox 3.6 e safari
queria ter testado no opera mas não tenho instalado aqui.
No Ie6 infelizmente não funcionou, como não tenho o 7 ou o 8, não tenho
como testar.
se funciona em um e não funciona em outro não adianta, mas aqui está o codigo, você não errou nada?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<title>Multiple Upload</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<input type="file" name="upload[]" multiple="multiple" />
</form>
</body>
</html>
Nino, é muito interessante essa validação, mas no meu caso acho que não vai adiantar, porque o meu problema é o usuario :(
como o sistema é grande e cheio de JS é melhor usar nesse caso o PHP mesmo para fazer a validação, aproveitando que já tenho
diversas rotinas pra validação prontas,
eu queria saber como fazer isso porque "o que o olho não vê a barriga não sente né?" hehehe, evitaria diversos problemas pra gente
aqui :/
de qualquer forma obrigado a vocês.
Abraços. :)
Acabei de copiar o teu script, colar num arquivo vazio, e rodar pelo Apache.
FireFox 3.5.8 não funciona.
Nem tentando selecionar com o Ctrl, nem com o Shift, nem tentando criar uma área de seleção clicando num vazio e arrastando sobre os arquivos.
Chrome 3.0 funciona.
^_^ enfim cara, não pode mesmo usar Flash? ainda creio ser a única forma 'garantida' de fazer isso.
Olá William,
vai acabar não funcionando numa pancada de navegadores então, se no ff 3.5.8 não funciona. :(
mas ... como usar o flash então? é muito complicado?
e vai mesmo mostrar para o usuário só os tipos de arquivo que quero que ele veja?
e... :mellow: ...você teria algum link de algum material sobre isso? :)
Obrigado denovo
Cara, eu nem manjo de flash.. pra poder te dizer 'como fazer'.. mas dá uma olhada:
http://demo.swfupload.org/v220/applicationdemo/index.php
Aqui eles fazem exatamente isso, e só mostra as extensões de arquivos que você liberar configurando um pequeno JS de init dele.
Talvez no fórum de Flash, a galera possa te orientar como fazer sem precisar necessariamente estudar ou usar esse plugin.
Obrigado! :)
Eu entendo um pouco de flash, mas vou ter que buscar ajuda no forum sim.
Acho ruim é conseguir no flash e no javascript e html não
>
Obrigado! :)
Eu entendo um pouco de flash, mas vou ter que buscar ajuda no forum sim.
Acho ruim é conseguir no flash e no javascript e html não
A janela de seleção de arquivos montada pelo AS3 é DO AS3, isso a torna multi-plataforma.
Javascript, além de variar de SO ainda varia de browser
Acho q to meio atrasado mais ai vai a dica:
<input type="file" accept=".gif,.jpg,.jpeg,.png,.doc,.docx">
Com HTML/CSS e Javascript não é possivel, pois essas linguagens não tem tanto controle assim sobre o OS.
Tente fazer um flash, pois com AS é mais 'provavel' que você consiga, já que é assim que os uploaders multiplos fazem. (veja swfupload)