文件读取器文件格式不协调 JSON 和 geojson



我在 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>

最新更新