Détecter le contenu d'un fichier de type lors de l'utilisation du JavaScript FileReader interface

J'ai été la mise en place d'un script d'import de fichiers texte dans une application web.

Mon script est comme suit:

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 s'agit essentiellement d'une modification de la posée sur cette question.

Cependant, au moment où l'utilisateur peut techniquement tentative d'importer n'importe quel fichier. Comme il est conçu pour des fichiers texte, des problèmes peuvent survenir si un autre type de fichier 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 définir un argument sur lequel le script détecte le type de contenu du fichier, et si elle n'est pas l'un des un certain nombre de contenus-types, le script refuser de les importer?

Merci d'avance pour tous les conseils.

Je pense, par "détecter le contenu de type" u veux dire, l'inférence à partir de l'extension de fichier..
l'inférence par l'extension serait une façon de le faire, mais j'espérais que je pourrais accès à tous les indique au navigateur que ce fichier est, par exemple, "text/plain" ou "text/x-tex" ou "image/jpeg" et ainsi de suite.

OriginalL'auteur | 2010-11-24