前端vue+express实现文件的上传下载示例

yizhihongxing

我们来详细讲解一下“前端vue+express实现文件的上传下载示例”的完整攻略。

1. 准备工作

首先,我们需要安装node.js和npm,这两个东西是在建立一个web应用程序时必要的要素。安装好这两个以后,我们可以使用npm安装express和vue-cli。

# 安装express
npm install express --save

# 安装vue-cli
npm install -g vue-cli

2. 创建项目

接下来,我们可以使用vue-cli创建vue项目:

vue init webpack file-upload-download-demo

3. 在项目中添加依赖项

我们需要在项目中安装以下依赖项:

# 安装express
npm install express --save

# 安装express-fileupload
npm install express-fileupload --save

# 安装cors
npm install cors --save

4. 编写服务端代码

我们需要在项目中创建一个server文件夹,将服务端代码放在这里面。然后,在server文件夹中创建一个index.js文件,编写如下代码:

// 引入express和express-fileupload
const express = require('express');
const fileUpload = require('express-fileupload');
const cors = require('cors');

// 创建服务器
const app = express();

// 添加跨域支持
app.use(cors());

// 设置端口号
const port = 3000;

// 存储文件
app.use(fileUpload());

// 处理上传文件的请求
app.post('/upload', (req, res, next) => {
  let file = req.files.file;
  file.mv('./uploads/' + file.name, (err) => {
    if (err) {
      res.status(500).send(err);
    }
    else {
      res.status(200).send('文件上传成功');
    }
  });
});

// 处理下载文件的请求
app.get('/download/:fileName', (req, res) => {
  let fileName = req.params.fileName;
  res.download('./uploads/' + fileName, fileName, (err) => {
    if (err) {
      res.status(500).send(err);
    }
  });
});

// 启动服务
app.listen(port, () => {
  console.log(`服务已启动,监听端口 ${port}`);
});

5. 编写前端代码

Vue项目中,我们需要编写两个组件:一个用来处理上传文件,一个用来处理下载文件。这里分别说明。

5.1 上传文件的组件

在src/components/文件夹下,我们创建一个UploadFile.vue文件,内容如下:

<template>
  <div>
    <input type="file" @change="uploadFile"/>
  </div>
</template>

<script>
export default {
  methods: {
    uploadFile(event) {
      let formData = new FormData();
      formData.append('file', event.target.files[0]);
      this.$http.post('http://localhost:3000/upload', formData).then(response => {
        console.log(response.data);
      });
    }
  }
}
</script>

5.2 下载文件的组件

同样,在src/components/文件夹下,我们创建一个DownloadFile.vue文件,内容如下:

<template>
  <div>
    <select @change="downloadFile">
      <option v-for="file in fileList" :value="file">{{file}}</option>
    </select>
  </div>
</template>

<script>
export default {
  data() {
    return {
       fileList: [] 
    }
  },
  methods: {
    getFiles() {
      this.$http.get('http://localhost:3000/files').then(response => this.fileList = response.data);
    },
    downloadFile(event) {
      let fileName = event.target.value;
      this.$http.get('http://localhost:3000/download/' + fileName, {responseType: 'blob'}).then(response => {
        let url = window.URL.createObjectURL(new Blob([response.data]));
        let link = document.createElement('a');
        link.href = url;
        link.setAttribute('download', fileName);
        document.body.appendChild(link);
        link.click();
      });
    }
  },
  mounted() {
    this.getFiles();
  }
}
</script>

6. 运行应用程序

我们需要在vue项目和server文件夹中分别运行以下命令:

# 在vue项目中运行
npm run dev

# 在server文件夹中运行
node index.js

到这里,我们就可以在浏览器中通过localhost:8080访问应用程序。在UploadFile.vue中选择一个文件上传,然后在DownloadFile.vue中选择一个文件下载即可完成完整的文件上传、下载示例。

以上是利用Vue和Express实现文件上传下载的示例,由于篇幅限制,只说明了代码的基本逻辑。如果您有其他问题可以查看相关的官方文档:Vue.js官方文档Express官方文档以及express-fileupload的文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:前端vue+express实现文件的上传下载示例 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue3+ts+vite+electron搭建桌面应用的过程

    下面是关于使用Vue3、TypeScript、Vite和Electron搭建桌面应用的完整攻略。 搭建步骤 1. 创建项目工程 首先需要安装Vite脚手架,在终端中输入以下命令安装: npm install -g create-vite-app 安装完成后,通过以下命令创建项目工程: create-vite-app my-project 此时会询问你需要使用…

    Vue 2023年5月28日
    00
  • 详解Vue自定义指令及使用

    详解Vue自定义指令及使用 什么是Vue自定义指令? Vue自定义指令是一种可以用来扩展Vue.js的功能的语法,它可以让我们自定义一些指令,以实现一些特定的交互效果、操作等。Vue自带了一些常用指令比如v-if、v-show等,但在实际业务开发中,有时还需要自定义指令来满足特定的需求。 自定义指令一般由两个部分组成:指令注册和指令函数。 如何注册自定义指令…

    Vue 2023年5月28日
    00
  • vue输入框使用模糊搜索功能的实现代码

    下面是关于使用Vue实现输入框模糊搜索的攻略。 1. 环境准备 首先需要准备一个Vue开发环境。我们可以使用Vue CLI进行快速构建,也可以手动搭建一个Vue项目。 2. 安装依赖 在项目根目录下通过命令行安装axios和element-ui: npm install axios element-ui 3. 创建输入框组件 使用<el-input&g…

    Vue 2023年5月27日
    00
  • 详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别

    Vue.js是一款流行的JavaScript框架,可以帮助开发者轻松构建单页面应用。在Vue.js中,主要有三个文件:main.js、App.vue和page/index.vue。它们之间的区别和联系如下。 main.js main.js 是 Vue.js 应用程序的入口文件,它负责初始化 Vue.js 应用程序,并创建一个 Vue.js 实例。在 main…

    Vue 2023年5月28日
    00
  • 详解vue-cli项目中怎么使用mock数据

    下面是详细讲解vue-cli项目中怎么使用mock数据的完整攻略: 1. 什么是Mock数据? Mock(模拟)数据是指在应用开发中,为了测试或者展示某些特定场景,而生成的一些假数据,这些数据可以被用来代替实际的数据,来进行快速、高效的应用开发。在前后端分离的架构下,Mock数据往往是前端开发人员自己模拟生成,而不必触碰后端的真实数据。 2. 为什么使用Mo…

    Vue 2023年5月28日
    00
  • Vue2.0利用vue-resource上传文件到七牛的实例代码

    下面是利用Vue2.0和vue-resource上传文件到七牛的实例代码的完整攻略。 安装vue-resource 首先,我们需要安装vue-resource。你可以在项目根目录运行以下命令安装: npm install vue-resource –save 配置七牛 首先,你需要在七牛上创建一个存储空间,然后配置访问密钥和域名。你可以在 七牛开发者中心 …

    Vue 2023年5月28日
    00
  • 浅谈vue中.vue文件解析流程

    在Vue中,.vue文件是一个自定义的组件格式,包含了一个完整的Vue组件,包括模板、样式和逻辑等内容。在这里,我们将详细讲解Vue中的.vue文件解析流程。 什么是.vue文件? .vue文件是一种自定义的组件格式,主要用于Vue项目中的组件开发。每个.vue文件都代表着一个完整的Vue组件,包括模板、样式和逻辑等部分。 .vue文件通常由三个部分组成: …

    Vue 2023年5月28日
    00
  • vue2.x与vue3.x中自定义指令详解(最新推荐)

    Vue2.x 与 Vue3.x 中自定义指令详解 Vue 提供了自定义指令的功能,可以用来处理 DOM 元素及其属性的问题,使得我们可以更加灵活地操作 DOM 元素。下面就是 Vue2.x 和 Vue3.x 中如何自定义指令的详解。 Vue2.x 中自定义指令 在 Vue2.x 中,我们可以使用 Vue.directive() 方法来自定义指令。 定义指令 …

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部