J'ai créé un script d'importation pour les fichiers en texte brut dans une application Web.Détection du type de contenu d'un fichier lors de l'utilisation de l'interface FileReader de JavaScript
Mon script est la suivante:
function dataImport(files) {
confirm("Are you sure you want to import the selected file? This will overwrite any data that is currently saved in the application workspace.");
for (i = 0; i < files.length; i++) {
file = files[i]
console.log(file)
var reader = new FileReader()
ret = []
reader.onload = function(e) {
window.localStorage.setItem("ApplicationData", e.target.result);
}
reader.onerror = function(stuff) {
console.log("error", stuff)
console.log (stuff.getMessage())
}
reader.readAsText(file)
}
}
Il est essentiellement une modification de celle posée sur this question.
Cependant, au moment où l'utilisateur peut techniquement tenter d'importer n'importe quel fichier. Comme il est conçu pour les fichiers en texte brut, des problèmes peuvent survenir si un type de fichier différent est importé.
J'ai remarqué dans la console que le navigateur détecte le type de contenu du fichier importé. Voici un exemple.
fileName: "ideas.txt"
fileSize: 377
name: "ideas.txt"
size: 377
type: "text/plain"
webkitRelativePath: ""
Est-il possible, alors, de mettre en place un argument sur lequel le script détecte le type de contenu du fichier, et si elle ne fait pas partie d'un certain nombre de appropriés types de contenu spécifiés, ont le script refuser de l'importer?
Merci d'avance pour tout conseil.
Je pense, par « détecter le type de contenu » u signifie, déduisant de l'extension du fichier .. –
inférant par l'extension serait une façon de le faire, mais j'espérais que je pouvais accéder à tout ce qui dit le front ser qu'un fichier est, par exemple, "text/plain" ou "text/x-tex" ou "image/jpeg" et ainsi de suite. –