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

陶中之马
  • 442

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

回复
阅读 3.6k
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"

你知道吗?

宣传栏