JS获取本地文件的方式

通过js来获取文件的方式,记录两种方法:
第一种,通过input获取:
html:

    <input type="file" id="files" multiple="multiple" >

其中multiple表示可以同时选中多文件
JS:

<script>
window.onload=function(){
    var getFile =document.getElementById("files");
    getFile.onchange=function(e){
        //获取到文件以后就会返回一个对象,通过这个对象即可获取文件
        console.log(e.currentTarget.files);//所有文件,返回的是一个数组
        console.log(e.currentTarget.files[0].name)//文件名
    }
}
</script>

解释:给input 注册一个onchange方法,当点击input的时候就会调用这个方法,选择文件以后就会返回一个对象,通过e.currentTarget.files就可以获取到选择的文件,该files是一个数组,里面保存着文件数据,如果是一个文件,则通过e.currentTarget.files[0]来获取即可,如果是多个文件,则遍历该数组即可。备注:如果input没有配置multiple属性,则只能选择一个文件。

第二种方法:拖拽文件的方式
通过拖拽的方式获取文件,主要调用了ondragover、ondragenter、ondragleave 、ondrop这四个事件,其中最后是在ondrop这个事件中获取文件,除此之外,要设置保存文件的方式为copy,不然获取回来的文件会是0字节的。

放一个div用来作为获取文件的区域,也可以直接用body
html:

<div id="container" class="content" style="width: 600px;height: 600px;margin: 100px  auto;background-color: darkred">

</div>

JS:

<script type="text/javascript">
    window.onload=function (ev) {
        var container = document.getElementById("container");
        container.ondragenter=function () {

        }
        container.ondragover=function (e) {
            //关闭默认事件
            e.stopPropagation();
            e.preventDefault();
            //设置获取模式,为复制
            e.dataTransfer.dropEffect = 'copy';
        }
        container.ondragleave =function () {

        }
        container.ondrop=function (e) {
            e.stopPropagation();
            e.preventDefault();
            var file = e.dataTransfer.files;
            var file_name = file[0].name;
            console.log(file_name);
        }
    }

</script>

e.stopPropagation();、e.preventDefault();这两个方法主要是用来取消默认事件的,不然浏览器则会认为是默认事件,把拖进来的文件交给浏览器处理。
最后在ondrop方法中,通过e.dataTransfer.files,方式获取拖进来 的文件,files和前面的一样,也是一个数组,获取方式和上边input 的方式一样,遍历数组即可。e.dataTransfer.dropEffect = ‘copy’;该方法是设置文件保存的方式为复制。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Chrome浏览器通过JavaScript获取本地文件可以使用HTML5中的File API。File API提供了一种机制,允许浏览器通过JavaScript访问用户本地文件系统中的文件。 要获取本地文件,首先要使用<input type="file">元素创建一个文件上传表单。然后,通过JavaScript监听文件选择事件,并获取所选文件的引用。 下面是一个简单的示例代码: HTML部分: ``` <input type="file" id="fileInput"> <button onclick="handleFile()">获取文件</button> ``` JavaScript部分: ``` function handleFile() { var fileInput = document.getElementById('fileInput'); var file = fileInput.files[0]; // 对获取到的文件进行操作,比如读取文件内容等 // 可以使用File API提供的方法进行读取操作 // 示例:读取文件内容 var reader = new FileReader(); reader.onload = function(e) { var fileContent = e.target.result; console.log(fileContent); }; reader.readAsText(file); // 以文本形式读取文件内容 } ``` 在上面的代码中,我们通过getElementById()方法获取输入元素的引用,并通过files属性获取所选择的文件。接下来,我们创建一个FileReader对象,通过其readAsText()方法读取文件内容。读取完成后,可以通过onload事件回调函数获取文件内容。 需要注意的是,由于浏览器的安全限制,只有用户手动选择的文件才能通过这种方式进行读取。此外,HTML页面必须在本地服务器上运行,而不能直接打开本地文件进行测试。 总而言之,Chrome通过JavaScript获取本地文件可以使用File API,该API提供了一种机制来访问用户本地文件系统中的文件。通过<input type="file">元素监听文件选择事件,并使用FileReader对象读取文件内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值