web资源读取上传 >>> 拖拽黏贴(文件、文件夹)等通通拿捏

最近项目多处需要资源读取上传,目前市面大多数工具是读取、上传混合一起,导致 UI 以及部分逻辑处理起来不太方便;所以自己实现了一下,具体做法是把资源读取、上传封装成两个工具,读取后的展示以及用户交互交给具体业务实现人,最后通过上传工具上传

介绍

  • 资源读取
    • 内置常见的情况,尽量不耦合 HTML 标签,提供易于处理的数据格式,主要追求灵活
    • d-resouce 把资源读取封装成 npm 包,并整理支持了相关业务场景
  • 资源上传
    • 负责控制并发、进度、取消、重试分片、对接后端接口协议等
    • npm 包正在进行中.....
  • 🙃 啰嗦一下
    • 希望能对大家有帮助,高效完成任务,愉快摸鱼(本人能力有限,望大佬轻喷;欢迎提建议,提交 pr 完善代码更好哈哈哈)

读取需求

  • 触发方式
    • 弹出系统资源框(input type="file" 选择)
    • 复制粘贴
    • 拖拽
  • 读取目标
    • 具体文件
    • 文件夹
    • 文件、文件夹混合
  • 数据形式
    • 平铺
      • 预览、展示部分信息
    • 树形
      • 文件夹展示其下所有文件总大小

d-resouce 简介

  • 传入目标元素,内部会使元素支持拖拽、黏贴方式,支持文件、文件夹、以及混合读取
  • 资源读取前、中、后会触发相应函数,方便业务灵活处理
    • 读取前beforeReadFuc
    • 读取中
      • 过滤,不会中断资源读取beforeReadFuc
        • 回调顺序,如下图
      • 检测,会中断资源读取validFuc
        • 回调顺序,只有文件会触发,如下图
    • 读取后readDataFuc
      • 数据会根据传入 mode 进行数据组建
        • 数组
        • 树形
  • UI 效果处理
    • 拖拽文件移入、离开目标元素会触发相应回调函数dragoverFuc、dragleaveFuc
  • 其他辅助函数
    • 文件 size 属性转为可读性良好的单位展示filterSize
    • 调用系统资源框供用户选择selectResource
    • selectResource 结果按照 mode 类型组装
      • 文件、多个文件selectFileChange
      • 文件夹selectFolderChange

demo 展示

源码地址

最后

如果对你开发某些功能有所帮助,麻烦多点赞评论收藏😊

如果对你实现某类业务有所启发,麻烦多点赞评论收藏😊

如果...,麻烦多点赞评论收藏😊

如果大家有其他的方案,欢迎留言交流哦!

相关推荐
方也_arkling23 分钟前
别名路径联想提示。@/统一文件路径的配置
前端·javascript
毕设源码-朱学姐25 分钟前
【开题答辩全过程】以 基于web教师继续教育系统的设计与实现为例,包含答辩的问题和答案
前端
qq_1777673731 分钟前
React Native鸿蒙跨平台剧集管理应用实现,包含主应用组件、剧集列表、分类筛选、搜索排序等功能模块
javascript·react native·react.js·交互·harmonyos
wAIxiSeu35 分钟前
Github开源项目推荐
开源·github
qq_1777673736 分钟前
React Native鸿蒙跨平台自定义复选框组件,通过样式数组实现选中/未选中状态的样式切换,使用链式调用替代样式数组,实现状态驱动的样式变化
javascript·react native·react.js·架构·ecmascript·harmonyos·媒体
web打印社区40 分钟前
web-print-pdf:突破浏览器限制,实现专业级Web静默打印
前端·javascript·vue.js·electron·html
RFCEO1 小时前
前端编程 课程十三、:CSS核心基础1:CSS选择器
前端·css·css基础选择器详细教程·css类选择器使用方法·css类选择器命名规范·css后代选择器·精准选中嵌套元素
烬头88211 小时前
React Native鸿蒙跨平台采用了函数式组件的形式,通过 props 接收分类数据,使用 TouchableOpacity实现了点击交互效果
javascript·react native·react.js·ecmascript·交互·harmonyos
Amumu121381 小时前
Vuex介绍
前端·javascript·vue.js
We་ct1 小时前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript