VUE后台管理项目配合后端接口,有关文件下载、导入上传功能的详细实现方法

VUE后台管理项目配合后端接口,有关文件下载、导入上传功能的详细实现方法

一、 调用后端接口实现文件下载

这里分两种情况
一种是后端接口可以直接触发下载(就是直接访问链接即可触发)
另一种后端接口返回二进制数据,需要你前台先处理一下再下载

1. 访问后台接口直接触发下载
// 直接访问链接触发下载的方式实质上就是通过<a>标签进行下载
<button @click="downloadMethod">下载</button>

downloadMethod(){
	// 通过DOM新建一个<a>标签,设置访问链接和下载文件名称
	const a = document.createElement('a');
	a.href = 'http://10.173.1.10/download';
	a.download = 'filename.xlsx';
	// 将<a>标签添加至DOM中,并触发下载
	document.body.appendChild(a);
	a.click();
	// 调用结束后,从DOM中移除该标签
	document.body.removeChild(a);
}
2. 访问后台接口返回二进制数据处理后再下载

二进制数据

// 二进制数据处理需要用到第三方插件
npm install file-saver

相关科普文章:聊一聊 15.5K 的 FileSaver,是如何工作的?

// 引入file-saver
import { saveAs } from "file-saver";

// 下载方法
async download() {
	// 调用后端接口,拿到返回的二进制数据
	const response = await this.$axios({
	  method: "POST",
	  url: "/api/student/fileDownload",
	  responseType: "blob",
	});
	// 使用saveAs方法触发下载
	// 第一个参数是二进制文件数据,第二个参数是下载文件名称
	saveAs(new Blob([response.data]), "导入模版.xls");
}

二、文件导入上传到后端接口

这里分两种解决方案
一种是使用ElementUI官方提供的<el-upload>组件实现上传
另一种是使用原生的<input>表单实现上传

1. 使用ElementUI官方提供的<el-upload>组件实现上传

<el-upload>组件官方有详细使用文档,这里暂不赘述

2. 使用原生的<input>表单实现上传
// 使用原生的input文件上传标签
// 其中accept表示接收的文件类型、change事件表示选中文件时调用的方法
<input type="file" ref="file" @change="importExcel" accept=".xlsx, .xls" style="display:none;"/>

// [可选]由于原生的<input>样式不好看,可以将<input>隐藏,然后使用$refs来调用<input>
<el-button @click="$refs.file.click()">学生导入</el-button>

// 导入方法
async importExcel() {
  // 先拿到文件数据
  let file = this.$refs.file.files[0];
  
  // 防错校验
  if (!file) return;
  
  // 使用原生FormData类将拿到的文件进行处理
  const formData = new FormData();
  // 第一个参数是传递给后端接口的参数名称,第二个参数是刚才通过$refs拿到的file文件
  formData.append("file", file);
  
  try {
    const response = await this.$axios({
      // 注意headers一定要加上form-data
      headers: { "Content-Type": "multipart/form-data" },
      method: "POST",
      url: "/api/importExcel",
      data: formData,
    });
      // 成功处理
      ...
  } catch (error) {
      // 错误处理
      ...
  } finally {
    // 重置文件输入,防止用户第二次提交文件时页面无反应
    this.$refs.file.value = "";
  }
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍Vue项目实战电商后台管理系统的实现与测试流程。 1. 实现 - 前端部分:在Vue CLI的基础上搭建项目框架,使用Element-UI组件库进行页面UI开发,使用Axios进行数据交互。同时,根据项目需求进行路由管理和权限控制的实现。 - 后端部分:使用Node.js搭配Express框架进行服务端开发,使用MongoDB作为数据库存储数据。后端的主要工作是与数据库交互,实现前端的业务逻辑。同时,根据项目需求进行身份验证和路由管理的实现。 2. 测试 - 单元测试:使用Jest进行单元测试,对前端后端的每个模块进行单元测试,以确保各个模块的功能正常。 - 集成测试:使用Selenium进行集成测试,对整个项目进行集成测试,以确保各个模块之间的交互正常。 - 功能测试:使用Postman进行功能测试,对整个系统各个功能进行测试,以确保系统能够正常运行并满足需求。 3. 部署 - 前端部分:使用npm run build命令将前端代码打包成静态文件,然后部署到NGINX服务器上。 - 后端部分:将后端代码上传到云服务器,并安装Node.js和MongoDB环境,然后启动后端服务。 - 数据库部分:在云服务器上安装MongoDB,并导入数据库数据,以便后端服务能够正常访问数据库。 4. 维护 - 监控日志:使用PM2进行进程管理和日志监控,及时发现并解决问题。 - 定期更新:定期对系统进行更新,以保证系统的稳定性和安全性。 - 安全防护:加强系统的安全防护措施,例如设置防火墙、SSL证书等。 以上就是Vue项目实战电商后台管理系统的实现与测试流程,如有疑问,欢迎提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值