Eu tenho um objeto de upload de arquivo na minha página:
<input type="file" ID="fileSelect" />
com os seguintes ficheiros Excel na minha área de trabalho:
- file1.xlsx
- file1.xls
- file.csv
Quero que o upload do arquivo para os arquivos ONLY mostre .xlsx',
.xls', & `.csv'.
Utilizando o atributo accept', encontrei estes tipos de conteúdo que cuidaram de
.xlsx' & `.xls' extensões...
accept
= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= aplicação/vnd.ms-excel (.XLS)
No entanto, não consigo encontrar o tipo de conteúdo correto para um arquivo Excel CSV! Alguma sugestão?
EXEMPLO: <
>Bem, isto é embaraçoso... Eu encontrei a solução que procurava e não podia ser mais simples... 39; não podia ser mais simples. Eu usei o seguinte código para obter o resultado desejado. Espero que isto ajude alguém no futuro. Obrigado a todos pela vossa ajuda.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
Para ficheiros **CSV*** (.csv), utilize:
<input type="file" accept=".csv" />
Para Excel Files 97-2003 (.xls), use:
<input type="file" accept="application/vnd.ms-excel" />
Para Excel Files 2007+ (.xlsx), use:
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
Para Arquivos de texto (.txt) use:
<input type="file" accept="text/plain" />
Para Arquivos de Imagem (.png/.jpg/etc), use:
<input type="file" accept="image/*" />
Para HTML Files (.htm,.html), use:
<input type="file" accept="text/html" />
Para Arquivos vídeo (.avi, .mpg, .mpeg, .mp4), use:
<input type="file" accept="video/*" />
Para Arquivos de áudio (.mp3, .wav, etc), use:
<input type="file" accept="audio/*" />
Para Arquivos PDF, use:
<input type="file" accept=".pdf" />
DEMO:
NOTE:
Se você estiver tentando exibir arquivos CSV do Excel (.csv
), faça *NÃO** utilizar:
texto/csv
aplicação/csv
Se você estiver tentando exibir um arquivo particular tipo (por exemplo, um WAV
ou PDF
), então isso quase sempre funcionará...
<input type="file" accept=".FILETYPE" />
Dom este atributo é muito antigo e não é aceite nos browsers modernos, mas aqui está uma alternativa a ele, tente isto
<script type="text/javascript" language="javascript">
function checkfile(sender) {
var validExts = new Array(".xlsx", ".xls", ".csv");
var fileExt = sender.value;
fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
if (validExts.indexOf(fileExt) < 0) {
alert("Invalid file selected, valid files are of " +
validExts.toString() + " types.");
return false;
}
else return true;
}
</script>
<input type="file" id="file" onchange="checkfile(this);" />
Suponho que sim'irá ajudá-lo, claro, você pode mudar este script de acordo com suas necessidades.
Eu utilizei "texto/valores separados por vírgula" para CSV tipo mime em atributos de aceitação e funciona bem em Opera. Experimentei o texto/csv
sem sorte.
Alguns outros MIME-Types para CSV, se as sugestões não funcionarem: