antd 选择文件夹_antd pro 下的文件下载

概要

前端上传文件的例子很多, 但是下载相关的例子不多, 主要是因为下载本身比较简单.

但是这次做了个文件导出功能, 接收文件流的时候弄了很长时间也没有成功, 就因为请求中缺了个配置…

示例

后端

后端比较简单, 不管有多少需要计算的业务, 最终只是返回文件流.

下面的示例是通过 golang gin 框架实现的.

1 package main

2

3 import (

4 "strconv"

5

6 "github.com/gin-gonic/gin"

7 )

8

9 func main() {

10 route(8000)

11 }

12

13 func route(port int) error {

14

15 r := gin.Default()

16 apiV1 := r.Group("/api/v1")

17

18 // file download

19 apiV1.GET("/download/:fileName", DownloadFile)

20

21 return r.Run(":" + strconv.Itoa(port))

22 }

23

24 func DownloadFile(c *gin.Context) {

25 fileName := c.Param("fileName")

26

27 c.File("./download/" + fileName)

28 }

根据 url 中的文件名, 直接返回 download 文件夹下的某个文件

前端

前端一般有以下几种情况的下载:

直接显示图片

直接将文件流赋给 img 的 src 就行

1 test.png%22%7D

提供下载链接, 点击后下载

1

文件导出, 前端没有显示下载链接的位置

这种方式需要前端模拟一个 a 标签的点击, 从而实现文件的下载.

1 export async function exportFile(params) {

2 return postJson('/api/v1/download/test.xlsx, params, 'blob').then((res) => {

3 let url = URL.createObjectURL(new Blob([res]));

4 let filename = '导出记录.xlsx';

5 let a = document.createElement('a');

6 a.href = url;

7 a.download = filename;

8 a.click();

9 URL.revokeObjectURL(url);

10 });

11 }

12

13 const postJson = async (url, params, responseType = '') {

14 const response = await request(url, {

15 method: 'POST',

16 header: {

17 'Content-Type': 'application/json',

18 },

19 data: params,

20 responseType: responseType,

21 });

22

23 // 省略... (对response的一些处理)

24

25 return Promise.resolve(response);

26 }

这里有个关键的配置 responseType: 'blob' 这个配置不在 header 中,

和 header, data 是平级的. (当时就是这个配置导致导出功能卡了半天, 如果没有这个配置, 导出之后会显示文件已经损坏)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现antd pro中的自定义动态设置暗黑模式,首先需要了解antd pro的样式结构和主题配置。 antd pro是基于Ant Design组件库的企业级中后台前端/设计解决方案,通过Ant Design的样式和组件提供了丰富的中后台页面布局和功能组件。其中,样式通过less进行管理。 要实现自定义动态设置暗黑模式,可以通过以下步骤进行操作: 1. 打开antd pro的源码目录,找到样式文件所在的目录。一般情况下,样式文件位于`src`目录下的`style`文件夹中。 2. 在样式文件夹中,通常会有主题相关的文件,如`variables.less`或者`theme.less`。这些文件存储了antd pro的主题配置。 3. 打开主题文件,查找与暗黑模式有关的配置项。根据antd pro的官方文档或者样式文件中的注释,可以找到与背景颜色、文本颜色等有关的配置项。 4. 根据需求,修改暗黑模式的配置项。例如,可以将背景颜色修改为暗色调,将文本颜色修改为亮色调。 5. 根据配置项的修改,重新编译样式文件。通常需要使用less编译工具,如lessc命令行工具或者集成开发环境中的less编译插件。 6. 编译完成后,将生成的样式文件替换antd pro项目中原有的样式文件。 7. 在antd pro的页面代码中,可以根据自定义的配置项来切换暗黑模式。例如,可以为页面增加一个按钮或者菜单项,点击该按钮或者选择该菜单项时,切换为暗黑模式。 综上所述,通过修改antd pro的样式文件中与主题相关的配置项,并在页面中进行相应的切换操作,即可实现自定义动态设置暗黑模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值