He estado configurando un script de importación para archivos de texto sin formato en una aplicación web.Detectando el tipo de contenido de un archivo al usar la interfaz de FileReader de JavaScript
Mi script es el siguiente:
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)
}
}
Básicamente se trata de una modificación de la posó sobre this question.
Sin embargo, por el momento el usuario puede intentar técnicamente importar cualquier archivo. Como está diseñado para archivos de texto sin formato, pueden surgir problemas si se importa un tipo diferente de archivo.
He notado en la consola que el navegador detecta el tipo de contenido del archivo que se está importando. Aquí hay un ejemplo.
fileName: "ideas.txt"
fileSize: 377
name: "ideas.txt"
size: 377
type: "text/plain"
webkitRelativePath: ""
¿Es posible, entonces, para establecer un argumento en el que el script detecta el tipo de contenido del archivo, y si no es uno de una serie de tipos de contenido específicos adecuados, tienen la secuencia de comandos se niegan a importarlo?
Gracias de antemano por cualquier consejo.
Creo, por 'detectar el contenido de tipo' U quiere decir, inferir de la extensión del archivo .. –
inferir por la extensión sería una manera de hacerlo, pero tenía la esperanza de que pudiera acceder a lo que le diga a la frente Ser que un archivo es, por ejemplo, "text/plain" o "text/x-tex" o "image/jpeg" y así sucesivamente. –