js:通过input标签或Drag拖拽文件实现浏览器文件上传获取File文件对象

文档

  • https://developer.mozilla.org/zh-CN/docs/Web/API/File
  • https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/drag_event

通过读取文件可以获取File对象的信息

lastModified: 1707210706000
lastModifiedDate: Tue Feb 06 2024 17:11:46 GMT+0800 (中国标准时间) {}
name: "fileauth.txt"
size: 64
type: "text/plain"
webkitRelativePath: ""

通过input标签获取文件对象

<input type="file" /><script>let input = document.querySelector('input')input.addEventListener('change', function (e) {// 获取FileList对象console.log(e.target.files)})
</script>

遍历所有文件

// 遍历所有文件
for (let i = 0; i < files.length; i++) {// 取得一个文件let file = files[i]// 取得文件名console.log(file.name)
}

通过拖拽获取文件对象

在这里插入图片描述

<!-- 样式 -->
<style>.dropzone {border: 2px dashed #ccc;background-color: #f9f9f9;height: 200px;width: 200px;}
</style><!-- 界面 -->
<divclass="dropzone"id="dropzone"
></div><!-- 逻辑 -->
<script>let dropzone = document.querySelector('#dropzone')// 注意阻止浏览器默认行为dropzone.addEventListener('dragenter', (e) => {e.stopPropagation()e.preventDefault()console.log('dragenter')})dropzone.addEventListener('dragleave', (e) => {e.stopPropagation()e.preventDefault()console.log('dragleave')})dropzone.addEventListener('dragover', (e) => {e.stopPropagation()e.preventDefault()console.log('dragover')})dropzone.addEventListener('drop', (e) => {e.stopPropagation()e.preventDefault()console.log('drop')// 获取文件列表对象 FileListconsole.log(e.dataTransfer.files)})
</script>

参考文章

  • js实现控制文件拖拽并获取拖拽内容功能
  • Vue实现文件拖拽功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492340.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API接口技术开发拼多多API获取宝贝详情页实时数据、原价、销量、主图、优惠券等参数可支持高并发调用接入演示

拼多多的API接口技术可以用于开发能够获取商品详情页实时数据、原价、销量、主图、优惠券等参数的应用程序&#xff0c;并支持高并发调用。以下是一些关于如何实现这一功能的分析&#xff1a; 注册和认证&#xff1a;您需要在开放平台注册账号&#xff0c;并完成必要的实名认证…

Directional coupler and Synchronous optical coupling(定向耦合器和同步光耦合)

Directional coupler and Synchronous optical coupler 正文DC 示意图 正文 DC 示意图 如上图所示是一个 Directional Coupler(DC) 的示意图&#xff0c;当光波从左侧端口进入的时候&#xff0c;会在中间这个直波导部分发生耦合&#xff0c;在一个直波导内的光波会以帅世波的形…

调度服务看门狗配置

查看当前服务器相关的sqlserver服务 在任务栏右键&#xff0c;选择点击启动任务管理器 依次点击&#xff0c;打开服务 找到sqlserver 相关的服务&#xff0c; 确认这些服务是启动状态 将相关服务在看门狗中进行配置 选择调度服务&#xff0c;双击打开 根据上面找的服务进行勾…

Spring Boo项目中方法参数对象中字段上存在的自定义注解如何进行拦截解析

一、前言 在Spring Boot项目开发过程中&#xff0c;我们经常会使用到自定义注解的方式进行业务逻辑开发&#xff0c;此时注解我们一般是放在方法或者类上面&#xff0c;通过AOP切面拦截的方式进行自定义业务逻辑填充。但是如果自定义注解放在类的字段上&#xff0c;此时应该如…

短链接的背后故事:为互联网用户带来的便捷与安全

title: 短链接的背后故事&#xff1a;为互联网用户带来的便捷与安全 date: 2024/2/26 14:58:58 updated: 2024/2/26 14:58:58 tags: 短链接技术起源长URL问题解决链接分享便利性链接跟踪与分析链接管理效率提升链接安全保障应用领域广泛 一、短链接的起源 短链接是一种将长UR…

精益生产,创新驱动:机器人技术引领企业的未来之路

随着自动化技术的普及和物联网、人工智能技术的迅速发展&#xff0c;全球制造业正在经历着一场革命性的变革。传统以人力劳动为基础的制造业正逐渐向以机器为主导的智能生产模式转型。企业们正积极探索更高效的制造方式&#xff0c;通过新兴技术提升生产力&#xff0c;同时降低…

【BUG 记录】MyBatis-Plus 处理枚举字段和 JSON 字段

【BUG 记录】MyBatis-Plus 处理枚举字段和JSON字段 一、枚举字段&#xff08;mysql环境已测、postgresql环境已测&#xff09;1.1 场景1.2 定义枚举常量1.3 配置枚举处理器1.4 测试 二、JSON字段&#xff08;mysql环境已测&#xff09;2.1 导包2.2 使用对象接受2.3 测试 三、JS…

[玩转AIGC]LangChain文本分词器

LangChain提供了多种不同类型的文本分词器&#xff0c;我们常说的tokenizer就是分词器的一种。 我们知道对于LLaMA与LLaMA2的文本分词器为基于sentencepiece的BPE模型&#xff0c;Google &#xff0c;而openai的文本分词器为tiktoken&#xff0c;据openai官方介绍&#xff0c;t…

【Redis学习笔记03】Java客户端

1. 初识Jedis Jedis的官网地址&#xff1a;https://github.com/redis/jedis 1.1 快速入门 使用步骤&#xff1a; 注意&#xff1a;如果是云服务器用户使用redis需要先配置防火墙&#xff01; 引入maven依赖 <dependencies><!-- 引入Jedis依赖 --><dependency&g…

Apache DolphinScheduler 3.2.1 版本发布:增强功能与安全性的全面升级

近期&#xff0c;Apache DolphinScheduler 社区激动地宣布 3.2.1 版本的发布。此次更新不仅着力解决了前一版本&#xff08;3.2.0&#xff09;中遗留的问题&#xff0c;而且引入了一系列的功能增强和优化措施。 原先的问题主要源于部分重要代码在发布过程中未能成功合并&#x…

防御保护第八、九、十、十一天笔记

一、内容安全 1、DFI和DPI技术 --- 深度检测技术 DPI是一种基于应用层的流量检测和控制技术&#xff0c;它会对流量进行拆包&#xff0c;分析包头和应用层的内容&#xff0c;从而识别应用程序和应用程序的内容。这种技术增加了对应用层的分析&#xff0c;识别各种应用&#xf…