近期在开发过程中,遇到了一个陌生而又熟悉的需求:选择文件夹。看似简单,实则有坑,本文记录了我的采坑过程。
需求描述
用户选择一个文件夹(注意,不是文件,是文件夹),然后前端拿到文件夹本地全局路径,进行一系列的其他操作。
最先想到的方案
前端开发最先想到的就是用Input,然后Type=file,去获取文件路径,这样就可以拿到路径了,于是,我实现了一版本:
function () {
let inputObj = document.createElement('input');
inputObj.setAttribute('id', '_ef');
inputObj.setAttribute('type', 'file');
inputObj.setAttribute('style', 'visibility:hidden');
inputObj.setAttribute('webkitdirectory', '');
inputObj.setAttribute('directory', '');
document.body.appendChild(inputObj);
inputObj.addEventListener('change', function (a,b,c) {
let obj = document.getElementById('_ef'