JavaScript中如何判断一个file对象是文件还是文件夹

奔跑小子 发布于 2016/06/03 07:38
阅读 1K+
收藏 0
在做一个页面文件拖拽上传,需要判断对象是否是文件,试了用FileReader好像也没什么帮助
加载中
1
b
beastxiao

我测了一下,你可能是FileReader用错了,


var reader = new FileReader();
reader.onload = function (e) {
    // it's a file
};
reader.onerror = function (e) {
    // it's a directory
};
reader.readAsText(file);

这里你的file传的值,需要这样写:


reader.readAsText(e.dataTransfer.files[0]);
或者你换种思路,没必要去读文件内容:


if(e.dataTransfer.files[0].type==""){

    // 是文件夹

}else{

//不是文件夹

}

当然种做法跟你判断一个文件是不是txt文件时,可以简单判断后缀或者取文件前几个字符来判断,这种做法属于前者,总之就是,文件夹名字以.txt等各种格式结尾时,不适用。

纯属个人见解,看好就给个赞!

奔跑小子
onerror有一个问题是不是在readAsText运行的时候立即触发
奔跑小子
我之前试过这个方法,readAsText对于文件夹也适用,我用的是chrome
返回顶部
顶部