自定义文件传输面板,解决将文件从邮件、OA等系统中拉取文件上传到云文档过程中,传输进度无法跟踪的问题

定制导致文档上传逻辑改变,传输面板无法正常唤起,怎么办?

本定制方案仅适用于私有化WPS365版本

1. 方案概述

用户上传文件时,文档中心页面会出现一个显示“文件上传进度”的面板,这就是传输面板。

AGSNAFZAAAAHG3O45AFZAACADE
上传文件时这里会显示上传进度,这就是“传输面板”

当企业在WPS文档中心上做了某些定制能力,可能导致WPS文档中心原有的上传逻辑被改变,影响传输面板的正常唤起,使得企业用户上传文件时,无从得知“文件还有多久传完”“是否成功上传”,也无法取消\暂停文件上传。

已知哪些定制能力,会导致传输面板无法正常唤起?

已知哪些定制能力,会导致传输面板无法正常唤起? ①安全扫描,在企业用户上传文件时进行病毒、关键词等安全扫描 ②文档安全等级对比,自动对比“上传文件”和“目的地文件夹”的安全等级是否一致

定制化解决方案

针对这类问题,我们可以使用文档中心Web端的开放能力,重新定制一个传输面板:

实现效果即使企业的定制打断了文档中心正常上传逻辑,完成传输面板定制后,仍可唤起传输面板。JQUPU2Y3ADAAI
涉及接口请求文件上传信息上传实体文件提交文件上传完
依赖版本版本24-11a(含)以上
依赖操作系统支持X86、XC
备注仅支持定制文档中心Web端(PC端)的传输面板,不支持定制H5端(移动端)的传输面板。但用户仍可用手机正常上传文件,只是不会唤起传输面板。

2. 使用指南

👉依赖能力

  • 前端埋点
功能埋点适用版本是否支持多插件是否支持异步
拖拽拦截sdk.kdrive.upload.onDragInterecpt23-08b
按钮统一点击拦截sdk.kdrive.uploadButton.onClick24-02b
头部右侧图标管理sdk.kdrive.header.rightPanel.uploadIcon23-10b//
历史版本屏蔽上传sdk.commonComponents.historyVersion24-01a//
  • 后端接口

📌 注意

365网关接口:!365网关接口

graph(o)网关接口:!365网关接口

功能URL适用版本备注
请求文件上传信息/openapi+/v7/drives/{drive_id}/files/{parent_id}/request_upload24-11a接口详细介绍
上传实体文件请求文件上传信息返回值中获取/接口详细介绍
提交文件上传完成/openapi+/v7/drives/{drive_id}/files/{parent_id}/commit_upload24-11a接口详细介绍

👉实现步骤

💡 原因

目前拦截上传前后两个阶段做定制处理时,会造成云文档文件上传逻辑阻断,需重新实现一套文件选择->文件上传->结果展示的组件逻辑。

1. 屏蔽原有逻辑

因需重新实现云文档上传的传输面板,需对原有传输面板进行屏蔽处理,因未提供传输面板本身的屏蔽功能埋点,故需要对触发云文档原有上传逻辑的情况进行拦截,避免触发云文档提供的传输面板。

1.1 屏蔽头部工具栏入口

首先对头部工具栏入口进行屏蔽,使用sdk上的hide方法对于具有data-eciskey属性的dom节点进行隐藏。

DZCQ42A3ADAEO
需要隐藏位置
sdk.kdrive.header.rightPanel.uploadIcon.hide();
1.2 拦截上传按钮功能

当前版本中含有多种上传文件(夹)按钮的入口,在202402B版本后,可以使用UploadButton埋点一次全部拦截。

5AXCG2A3ACAACJNWCG2A3AAQEG3GICG2A3ABQEMG64R6UA4ADAD4
文件列表右上方左侧导航栏团队无文档时空白位置右键
sdk.kdrive.uploadButton.onClick((data) => {
  // 使用data进行定制操作
  // true时拦截原本逻辑,false时会正常调用
  return true;
});
1.3 拖拽上传拦截

可以使用upload.onDragInterecpt埋点对拖拽上传进行拦截

sdk.kdrive.upload.onDragInterecpt((data)=>{
  // 使用data进行定制操作
  // true时拦截原本逻辑,false时会正常调用
  return true
})
1.4 历史版本上传

该逻辑不会调用原有传输面板逻辑,可根据自身需求决定是否拦截。

EHWEM3A3ADQEI
sdk.commonComponents.historyVersion.onMounted((data) => {
    data.ecisConfig.showUploadButton = false;
})
文件选择逻辑

💡

由于拦截入口后,云文档上传文件逻辑被截断,需要从上传文件开始重新实现。

可使用原生input框进行实现,根据点击情况来判断文件选择器是否支持多文件、文件夹选择等,逻辑较为简单,不再详细介绍。

文件上传逻辑

📌 提示

这里以小文件上传三步走为例,大文件分块上传监听进度原理大致相同,可自行设计实现。

3.1 文件请求上传(第一步)

使用request_upload或其对应封装接口即可,无特别注意事项,如有文件名冲突,跳过检查权限等需求可自行修改请求参数。

返回值中包含有上传第二步中请求的minio的请求地址

3.2 文件传输(第二步)

使用xhr发送请求,并实现实时监听上传进度和上传情况并展示即可

xhr.upload.onprogress = function (e) {
  if (e.lengthComputable) {
    const percentComplete = Math.ceil((e.loaded / e.total) * 100);
    updateTask({ ...task, status: "uploading", progress: percentComplete });
  }
};

xhr.upload.onload = function (e) {
  updateTask({ ...task, status: "uploading", progress: 100 });
};
3.3 文件提交上传(第三步)

使用commit_upload或其对应封装接口即可,info_token参数需要从第二步请求的响应头中获取,如有文件名冲突,跳过检查权限等需求可自行修改请求参数。

返回值中文件相关参数可进行后续优化体验操作时参数。

面板展示逻辑

使用状态管理,当选择文件后展示面板,点击非面板内部时关闭面板即可。如想展示更多内容,可使用获取文件信息接口获取上传后文件的详细内容进行展示。

由于模板库添加位置亦为头部slot埋点,如需添加头部工具栏入口且启用模板库时需注意样式。

📌 提示

这里仅以使用上传按钮选择单独小文件上传时唤出自定义传输面板为例,对于具体情况如重名等问题未进行处理,其余多文件、大文件、拖拽上传等情景原理相似,可自行设计实现,上传后刷新,css样式等优化体验内容未实现,可自行实现。

效果:

JQUPU2Y3ADAAI

相关新闻

  • 双因子认证

    双因子认证

    企业出于安全考虑,需要在修改功能或登录密级较高的页面时,对成员进行二次身份校验 企业需要双因子认证时,可以怎么操作? 该组件仅适用于私有化WPS365版本 1. 方案概述 一般来讲,用户登录的安全认证分为两种: 文档中心使用的是单因子认证的方式。 出于安全考虑,企业需要在修改定制应用功能前,比如修改消息审计、全局配置前。 或登录密级较高的页面时,对成员进行二次身份校验。 针对这种情况,我们可以使用文档中心管理后台的开放能力,定制双因子认证 实现效果 用户登录管理后台时,页面会跳出窗口,提醒用户绑…

    最佳实践 2025年12月11日
  • 自定义云文档操作项

    自定义云文档操作项

    响应企业安全、效率需求,屏蔽、禁用、拦截、扩展云文档的导入导出等操作。 如何屏蔽\禁用\拦截\扩展文件操作项? 本定制方案仅适用于私有化WPS365版本 1. 方案概述 文档中心里,这些“新建”“导入”“上传”“导出”“分享”等按钮,都是文件操作项,企业用户可以使用这些按钮操作文件。 有些企业可能出于安全、效率等需求,希望屏蔽\禁用、拦截、扩展部分文件操作项。 屏蔽\禁用 指的是企业担心文档泄漏,希望完全禁止企业用户下载文档,想屏蔽\禁用WPS文档中心的下载按钮。屏蔽:指“操作项完全不可见”禁用…

    最佳实践 2025年12月11日
  • 自定义文件列表右键菜单项

    自定义文件列表右键菜单项

    企业需要在文件列表的右键菜单栏中,新增其它定制菜单项 如何在文件列表新增右键菜单项? 本定制方案仅适用于私有化WPS365版本 1. 方案概述 有时候,企业需要给不在组织通讯录中的成员共享文档,传统流程是把文档下载下来,通过邮件发送,易导致效率瓶颈。 现在,通过文档中心的扩展能力,可以直接在文件列表右键菜单新增自定义分享弹窗入口,简化协作流程。 这一功能不仅支持自定义分享弹窗,企业也可根据实际需要,在文件列表的右键菜单栏中,新增其它定制菜单项。 我们可以使用文档中心Web端(PC端)的开放能力,…

    最佳实践 2025年12月11日
  • 限制企业用户上传特定文件

    限制企业用户上传特定文件

    有些企业出于文档安全、带宽分配等原因,需要限制或全面杜绝文件上传。文档中心开放能力支持企业定制上传功能。 如何限制企业用户上传特定文件? 本定制方案仅适用于私有化WPS365版本 1. 方案概述 有些企业出于文档安全、带宽分配等原因,需要限制文件上传: 有些企业希望完全杜绝以上风险,全面禁止企业用户上传文件。 针对这两种情况,我们可以使用文档中心服务端、Web端(PC端)、H5端(移动端)的开放能力,定制上传功能: 实现方式&效果 方案一需禁止特定文件类型 通过修改文件上传接口的策略并进行校验,…

    最佳实践 2025年12月11日
  • 限制用户下载特定文件

    限制用户下载特定文件

    在员工离职或出于其它安全考虑,企业需要对员工创建或管理的文件进行管控,或对扫描出敏感信息的文件进行管控,限制文件下载。 如何限制企业用户下载特定文件 本定制方案仅适用于私有化WPS365版本 1. 方案概述 员工离职前,出于安全考虑,企业会对其创建或管理的文件进行管控。 管控会有两个实现方式: 有安全管控需求时,比如文件扫描出敏感信息,用户的网络环境(内网或外网)、文件大小不满足管理规定,都有可能需要限制下载。 针对这两种情况,我们可以使用文档中心Web端(PC端)的开放能力,定制下载功能: 实…

    最佳实践 2025年12月11日
  • 新增自定义侧边栏菜单

    新增自定义侧边栏菜单

    企业想把文档中心上定制的新功能放在文档中心上,可以将入口放在文档中心左侧Tab栏

    最佳实践 2025年12月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

立即咨询 企业版试用 上门服务

请您留言

感谢您的关注,你可留下联系方式,我们将第一时间与您联系。