JavaScript - 获取目录

JavaScript - 获取目录


前言

JavaScript 获取上传目录, 遍历目录内文件.

webkitdirectory

webkitdirectory 是 HTML5 <input> 标签内的一个属性, 对应的值是 truefalse, 如果开启了则用户在选择文件的时候只能选择文件夹.

代码

以下是代码实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>dir</title>
</head>
<body>
    <input id="dir" name="dir" type="file" webkitdirectory multiple onchange="uploadDir(this)">
</body>
<script>
    function uploadDir(inputTag) {
        const files = inputTag.files;

        let start = new Date();
        for (let file of files) {
            console.log(file.webkitRelativePath);
        }
        let end = new Date();

        let intervals = end.getTime() - start.getTime();
        console.log("共耗时: " + intervals + "ms");
    }
</script>
</html>

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取目录下所有文件名,我们需要使用JavaScript编写一个函数来实现这个功能。主要的思路就是使用Ajax技术,向目标文件夹发送一个HTTP请求,然后解析服务器返回的数据,最终得到目录下所有的文件名。 首先,我们需要定义一个函数,名为getFileList。在这个函数中,我们将创建一个XMLHttpRequest对象,然后通过这个对象与服务器进行交互。使用XMLHttpRequest对象发送HTTP请求,我们需要指定请求的类型和请求的地址。 接下来,我们需要等待服务器返回数据,使用XMLHttpRequest对象的readyState和onreadystatechange事件实现异步请求。当readyState的值变成4时,表示服务器响应完成。我们接着需要解析返回的数据,完成目录下所有文件名的获取工作。 这里,我们可以利用responseText属性获得服务器返回给我们的字符串形式的数据,将其转换成JSON格式,并且遍历目录下的所有文件,将文件名存储在一个数组里面,最后将数组作为函数的返回值返回。代码实例如下: ``` function getFileList(path){ var xhr = new XMLHttpRequest(); xhr.open("POST", "file-service.php", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { var response = JSON.parse(this.responseText); var fileList = []; for(var i = 0; i < response.length; i++){ fileList.push(response[i].name); } return fileList; } } xhr.send("path=" + path); } ``` 上述代码中,我们将文件参数path通过POST方式发送给了file-service.php文件,该文件实现了目录下所有文件名的获取工作,并且返回包含文件名的JSON格式字符串。最后,我们通过遍历这些文件名,最终得到所有文件名的数组fileList。注意,我们需要在文件文件上传前指定Content-type类型,表明是json数据类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值