我在 Angular 2 中使用文件阅读器。我知道文件格式可以通过以下方式访问:
file.type
当我加载例如 txt 时,类型为:文本/纯文本。 但是当我加载 json 或 geojson 时,返回的值为空。
有没有可靠的方法可以在其 JSON 或 Geojson 时访问这些类型?
知道它是否是 json 的唯一可靠方法是测试内容。意思是贯穿JSON.parse()
.如果它抛出异常,则不是 json(或者是格式错误的 json(。
try {
JSON.parse(fileContents);
} catch(e){
console.log("Not a json file or file containing malformed json");
}
Mime 类型不会作为文件中的某些数据片段存储。它通常由扩展名、幻数(二进制标头(等决定。根据实现,浏览器很可能只是查看扩展并使用一些查找表。您使用的浏览器似乎没有为.json
文件设置一个
浏览器例如,在Chrome的以下演示中加载.json
文件将显示application/json
。将其更改为.txt
将使其视为text/plain
.将其更改为其他扩展名将再次更改它。
document.querySelector('input').addEventListener('change',function (){
document.body.insertAdjacentHTML('beforeend',this.files[0].type+"<br>");
});
<input type="file" /><br>