Preciso fazer upload apenas do arquivo de imagem através <input type="file">
tag.
No momento, ele aceita todos os tipos de arquivos. Mas, eu quero limitar a extensões de arquivo de imagem única específicas que incluem .jpg
, .gif
etc.
Como posso conseguir essa funcionalidade?
Respostas:
Use o atributo de aceitação da marca de entrada. Portanto, para aceitar apenas PNGs, JPEGs e GIFs, você pode usar o seguinte código:
Ou simplesmente:
Observe que isso fornece apenas uma dica para o navegador sobre quais tipos de arquivos exibir para o usuário, mas isso pode ser facilmente contornado, portanto, você sempre deve validar o arquivo carregado no servidor também.
Ele deve funcionar no IE 10+, Chrome, Firefox, Safari 6+, Opera 15+, mas o suporte é muito superficial em celulares (a partir de 2015) e, segundo alguns relatórios, isso pode realmente impedir que alguns navegadores móveis enviem qualquer coisa, então certifique-se de testar bem suas plataformas de destino.
Para suporte detalhado ao navegador, consulte http://caniuse.com/#feat=input-file-accept
fonte
accept="file/csv, file/xls"
é válido ??image/x-png
? De acordo com esta lista, é justoimage/png
. iana.org/assignments/media-types/media-types.xhtmlUsando isto:
funciona no FF e no Chrome.
fonte
Use-o assim
Funcionou para mim
https://jsfiddle.net/ermagrawal/5u4ftp3k/
fonte
Etapas:
1. Adicione o atributo de aceitação à tag de entrada
2. Valide com javascript
3. Adicione a validação do lado do servidor para verificar se o conteúdo é realmente um tipo de arquivo esperado
Para HTML e javascript:
Explicação:
fonte
Isso pode ser alcançado por
Mas esse não é um bom caminho. você precisa codificar no servidor para verificar ou não uma imagem no arquivo.
Verifique se o arquivo de imagem é uma imagem real ou imagem falsa
Para mais referência, veja aqui
http://www.w3schools.com/tags/att_input_accept.asp
http://www.w3schools.com/php/php_file_upload.asp
fonte
você pode usar o
accept
atributo para<input type="file">
ler estes documentos http://www.w3schools.com/tags/att_input_accept.aspfonte
Usando type = "file" e aceite = "image / *" (ou o formato desejado), permita ao usuário escolher um arquivo com formato específico. Mas você deve verificar novamente no lado do cliente, porque o usuário pode selecionar outro tipo de arquivo. Isso funciona para mim.
E então, no seu script javascript
fonte
const file: File = imageInput.files[0];
:? Além disso, a atribuição de id à entrada não é feita da maneira convencional.Se você desejar fazer upload de várias imagens de uma só vez, poderá adicionar
multiple
atributo à entrada.fonte