前端vue+express怎么实现文件的上传下载
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,本篇内容主要讲解"前端vue+express怎么实现文件的上传下载",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"前端vue+express怎么实现文件的上
千家信息网最后更新 2025年02月21日前端vue+express怎么实现文件的上传下载
本篇内容主要讲解"前端vue+express怎么实现文件的上传下载",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"前端vue+express怎么实现文件的上传下载"吧!
新建server.js
yarn init -yyarn add express nodemon -Dvar express = require("express");const fs = require("fs");var path = require("path");const multer = require("multer"); //指定路径的var app = express();app.use(express.json());app.use(express.urlencoded({ extended: true }));// 前端解决跨域问题app.all("*", (req, res, next) => { res.header("Access-Control-Allow-Origin", "*"); next();});// 访问静态资源app.use(express.static(path.join(__dirname)));// 文件上传app.post("/upload", multer({ dest: "./public" }).any(), (req, res) => { const { fieldname, originalname } = req.files[0]; // 创建一个新路径 const name = fieldname.slice(0, fieldname.indexOf(".")); const newName = "public/" + name + path.parse(originalname).ext; fs.rename(req.files[0].path, newName, function (err) { if (err) { res.send({ code: 0, msg: "上传失败", data: [] }); } else { res.send({ code: 1, msg: "上传成功", data: newName }); } });});// 文件下载app.get('/download', function(req, res) { res.download('./public/test.xls');});// 图片下载app.get('/download/img', function(req, res) { res.download('./public/2.jpg');});let port = 9527;app.listen(port, () => console.log(`端口启动: http://localhost:${port}`));
(1):前端文件上传请求
第一种: form表单
第一种: input输入框
changeHandler(event) { let files = event.target.files[0]; console.log("files",files) let data = new FormData(); data.append(files.name,files); console.log("data",data) axios.post("http://localhost:9527/upload",data,{ headers:{ "Content-Type":"multipart/form-data" } }).then(res =>{ console.log("res",res) }) },
(2):前端文件下载
第一种: 后端返回一个下载的链接地址,前端直接使用 即可
第二种: 使用二进制流文件下载
handleDownload() { axios({ method: 'get', url: "http://localhost:9527/download", data: { test: "test data" }, responseType: "arraybuffer" // arraybuffer是js中提供处理二进制的接口 }).then(response => { // 用返回二进制数据创建一个Blob实例 if(!response) return; let blob = new Blob([response.data], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", }) // for .xlsx files // 通过URL.createObjectURL生成文件路径 let url = window.URL.createObjectURL(blob) console.log("url==========",url) // 创建a标签 let ele = document.createElement("a") ele.style.display = 'none' // 设置href属性为文件路径,download属性可以设置文件名称 ele.href = url ele.download = this.name // 将a标签添加到页面并模拟点击 document.querySelectorAll("body")[0].appendChild(ele) ele.click() // 移除a标签 ele.remove() }); },
(3) 附加:二进制流图片的下载
// 二进制流图片文件的下载 downLoadImg() { axios({ method: 'get', url: `http://localhost:9527/download/img`, responseType: 'arraybuffer', params: { id: 12 } }).then(res => { var src = _'data:image/jpg;base64,' + btoa(new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), '')) // this.srcImg = src // 图片回显 var a = document.createElement('a') a.href = src a.download = '2.jpg' a.click() a.remove() }) }
到此,相信大家对"前端vue+express怎么实现文件的上传下载"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
文件
前端
二进制
图片
路径
上传下载
文件下载
标签
内容
属性
学习
实用
更深
成功
兴趣
名称
图片下载
地址
实例
实用性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
uniapp客户端数据库
软件开发 基金的预算表
闻泰软件开发面试题
打开数据库数据文件
法院的网络安全责任书
计算机网络技术人员资格证书
为什么要发展数据库技术
腾讯服务器被木马成功进入怎么办
洛阳恒利软件开发公司
南通纽康数研网络技术面试
关于转发网络安全
捷益定制软件开发
实用数据库考试选择题多少分
软件开发logo
信息安全 网络技术考哪个好
pqdt数据库是外国的吗
软件开发的预算支出
我的世界国际服务器教程
cs1.6进服务器指令
服务器隐藏真实ip
html怎样连接到数据库
电视机服务器无法连接怎么办
计算机网络安全基础体温备孕
计算机网络技术 教材课本
网络技术竞赛题库及答案
惠普畅游人 软件开发
汉语例句的数据库
传奇修改移动带到护卫数据库
天天英雄数据库
称重串口服务器