【开源代码学习--若依】vue+springboot文件下载

1 引入

需要文件下载功能,如下图所示:

图片名称

2 解决

2.1 手写(404,无法下载)

2.2 使用官网提供的封装方法

参考使用若依前后端分离下载需要授权的url文件

  1. 前端使用封装方法this.$download.resource(resource);

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // 表格中的下载按钮
    <el-table-column label="下载报告" align="center" class-name="small-padding fixed-width">
    <template slot-scope="scope">
    <el-button
    size="mini"
    type="text"
    icon="el-icon-download"
    @click="handleDownload(scope.row)"
    v-hasPermi="['system:report:downLoad:test']"
    >下载</el-button>
    </template>
    </el-table-column>

    // handleDownload(scope.row)函数实现
    /** 下载报告按钮操作 */
    handleDownload(row) {
    this.reset();
    const id = row.id || this.ids
    const resource = "/profile/upload/" + row.reportName; // 不再设立实体类
    // 默认方法
    this.$download.resource(resource);
    },
  2. 增加对xml文件的授权:修改MimeTypeUtils.java文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static final String[] DEFAULT_ALLOWED_EXTENSION = {
    // 图片
    "bmp", "gif", "jpg", "jpeg", "png",
    // word excel powerpoint
    "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt",
    // 压缩文件
    "rar", "zip", "gz", "bz2",
    // 视频格式
    "mp4", "avi", "rmvb",
    // pdf
    "pdf",
    // xml
    "xml",
    };
  3. 修改资源默认路径,资源默认路径是D:\ruoyi\uploadPath\upload,修改文件RuoYi-Vue\ruoyi-admin\src\main\resources\application.yml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 项目相关配置
    ruoyi:
    # 名称
    name: RuoYi
    # 版本
    version: 3.8.1
    # 版权年份
    copyrightYear: 2022
    # 实例演示开关
    demoEnabled: true
    # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
    profile: E:/05 Code/RMDVS/uploadPath
    # 获取ip地址开关
    addressEnabled: false
    # 验证码类型 math 数组计算 char 字符验证
    captchaType: math

2.3 补充(修改日志默认路径)

日志默认路径:E:\home\ruoyi\logs

修改文件:RuoYi-Vue\ruoyi-admin\src\main\resources\logback.xml

1
2
3
<!-- 日志存放路径 -->
<!-- <property name="log.path" value="/home/ruoyi/logs" />-->
<property name="log.path" value="E:/05 Code/RMDVS/logs" />