<input type="file" accept=".js">
<input type="file" id="file-input" accept=".js">
<script>
const fileInput = document.getElementById('file-input');
let currentFolder = null;
fileInput.addEventListener('change', () => {
// 记录当前文件所在的文件夹路径
currentFolder = fileInput.files[0].webkitRelativePath.split('/')[0]; });
fileInput.addEventListener('click', () => {
// 如果已经选择了一个文件,则限制下一次选择的文件只能在当前文件夹选 js 文件
if (currentFolder) {
fileInput.setAttribute('webkitdirectory', currentFolder);
fileInput.setAttribute('directory', currentFolder);
fileInput.setAttribute('accept', `${currentFolder}/*.js`);
}
});
</script>
以下是一个示例代码:
<el-upload
class="upload-demo"
action="/upload"
:before-upload="beforeUpload"
>
<el-button slot="trigger" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" type="success">上传到服务器</el-button>
</el-upload>
methods: {
beforeUpload(file) {
// 获取当前文件夹路径
const currentPath = file.webkitRelativePath.split('/')[0];
// 判断上传的文件是否在当前文件夹内
if (file.webkitRelativePath.indexOf(currentPath) !== 0) {
this.$message.error('只能上传当前文件夹内的文件');
return false;
}
return true;
}
}