请问js如何判断文件类型是否是rar呢。

之前我是通过file.type来判断其文件类型的,比如png文件的type就是image/png。然而我发现rar文件的type是空的,那么我在校验文件类型的时候就没法通过这个type来校验了。
于是我想着把文件名用.split('.')分割,校验数组长度是否大于1且数组的最后一个字符串是否等于rar。但我有些担心文件是否可以设置文件名为abc.rar.txt(此时txt是后缀)后直接把其后缀去掉,然后这个没有后缀的文件就被识别为rar文件了。
求教大神,你们是如何做文件类型检验的呢?

阅读 9k
4 个回答
function getFiletype(obj){
    fileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();//获得文件后缀名
    if(fileExt!='.rar'){
        alert("Not rar");
        return false;
}

用十六制读,判断文件头。
rar的文件头前4个字节为52617221

const isRAR = file.name.split("").slice(-4,file.name.length).join("") === ".rar"

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题