J'ai un objet de téléchargement de fichier sur ma page :
<input type="file" ID="fileSelect" />
avec les fichiers excel suivants sur mon bureau :
- file1.xlsx
- fichier1.xls
- fichier.csv
Je veux que le téléchargement de fichiers affiche SEULEMENT les fichiers .xlsx
, .xls
, & ; .csv
.
En utilisant l'attribut accept
, j'ai trouvé que ces types de contenu prenaient en charge les extensions .xlsx
& ; .xls
...
accept
= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= application/vnd.ms-excel (.XLS)
Cependant, je n'arrive pas à trouver le type de contenu correct pour un fichier Excel CSV ! Avez-vous des suggestions ?
EXEMPLE : <
>Eh bien, c'est embarrassant... J'ai trouvé la solution que je cherchais et ça ne pouvait pas être plus simple. J'ai utilisé le code suivant pour obtenir le résultat souhaité. J'espère que cela aidera quelqu'un à l'avenir. Merci à tous pour votre aide.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
Pour les fichiers CSV (.csv), utilisez :
<input type="file" accept=".csv" />
Pour les fichiers Excel 97-2003 (.xls), utilisez :
<input type="file" accept="application/vnd.ms-excel" />
Pour les fichiers Excel 2007+ (.xlsx), utilisez :
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
Pour les fichiers texte (.txt), utilisez :
<input type="file" accept="text/plain" />
Pour les fichiers d'images (.png/.jpg/etc), utilisez :
<input type="file" accept="image/*" />
Pour les fichiers HTML (.htm, .html), utilisez :
<input type="file" accept="text/html" />
Pour les fichiers vidéo (.avi, .mpg, .mpeg, .mp4), utilisez :
<input type="file" accept="video/*" />
Pour les fichiers audio (.mp3, .wav, etc), utilisez :
<input type="file" accept="audio/*" />
Pour les fichiers PDF, utilisez :
<input type="file" accept=".pdf" />
DEMO :
NOTE:
Si vous essayez d'afficher des fichiers Excel CSV (.csv
), n'utilisez PAS NOT :
text/csv
application/csv
text/comma-separated-values
(fonctionne uniquement dans Opera).Si vous essayez d'afficher un type de fichier particulier (par exemple, un WAV
ou un PDF
), cela fonctionnera presque toujours...
<input type="file" accept=".FILETYPE" />
Dom cet attribut est très ancien et n'est pas accepté dans les navigateurs modernes pour autant que je sache, mais voici une alternative, essayez ceci
<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);" />
Je pense que cela vous aidera, mais vous pouvez bien sûr modifier ce script en fonction de vos besoins.
J'ai utilisé text/comma-separated-values
pour le mime-type CSV dans l'attribut accept et cela fonctionne bien dans Opera. J'ai essayé text/csv
sans succès.
D'autres MIME-Types pour CSV si ceux suggérés ne fonctionnent pas :
Source : http://filext.com/file-extension/CSV