Closed Rhynchocephale closed 9 years ago
Ouais, je pense que c'est ce qui est dit ici : http://www.developpez.net/forums/d1127980/webmasters-developpement-web/balisage-x-html-validation-w3c/input-type-file-type-mime/#post6222780 Les navigateurs ne doivent toujours pas le gérer. Sinon tu peux le faire en javascript... tu fais une fonction callback qui est appelée sur un onChange de ton input et tu détectes soit l'extension : exemple => var allowedTypes = ['png', 'jpg', 'jpeg', 'gif'], fileInput = document.querySelector('#file'), prev = document.querySelector('#prev'); fileInput.addEventListener('change', function() { var files = this.files, filesLen = files.length, imgType; for (var i = 0 ; i < filesLen ; i++) { imgType = files[i].name.split('.'); imgType = imgType[imgType.length - 1]; if(allowedTypes.indexOf(imgType) != -1) { createThumbnail(files[i]); } } }, false);
... ou le type MIME (je crois que c'est le champ type de ton objet de type file)
Concernant le fichier d'etalonnage: Il doit être uplodé dans repertoire_donnees/login/id_chantier/Ori-Calib donc au cas ou l'utilisateur choisit de l'uploader manuellement, un dossier Ori-Calib doit être créé et le fichier doit être mis là dedans.
A priori:
Le type MIME des fichiers xml est text/xml
, et j'ai testé dans Chrome:
<input type="file" accept="text/xml">
Un tableau de compatibilité des différents attributs de l'élément input
Effectivement, ça a l'air de marcher sur Chrome. J'avais testé sous Chromium, et d'autres browsers customisés par Debian.
Ouais, on va dire que c'est bon.
Dans la pop-up pour l'étalonnage, il est possible d'importer un fichier de calibration. Ce fichier doit être un XML. Dans la balise "input", j'ai essayé les attributs "accept='.xml'" et "accept='text/xml, application/xml'", mais ni Chrome, ni IceWeasel, ni Konqueror (bon, ok, c'est peut-être pas le browser le plus fiable du monde) ne semblent le prendre en compte et proposent quand même tous les types de fichiers à l'utilisateur. Si quelqu'un sait filtrer par extension/MIME, ça m'intéresse.