upload上传和下载文件
前端上传用element组件
<el-uploadclass="upload-demo"drag:limit="1"accept="pdf":data={name:this.username}name="file"action="http://localhost:3030/api/candidate/userinfojl"multiple><i class="el-icon-upload"></i><div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div><!-- <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div> -->
</el-upload>
//:data可以传除了文件之外的其他参数
action写请求地址
上传的后端nodejs
infoEditjl (name,data) {name = escape(name)const sql = `UPDATE candidate SET 简历 = '${data}', isapprove = false WHERE username = '${name}'`console.log("简历",name,data)return exec(sql)},
//此函数是操作数据库的方法,把文件名(随机生成的不重复名)存放到数据库中app.post('/api/candidate/userinfojl', async(req, res) => {let form = new formidable.IncomingForm()form.parse(req,async (err, files, file) => {let name = files.name;let read = fs.createReadStream(file.file.filepath)let file_name = file.file.newFilename+"." +file.file.originalFilename.split(".")[file.file.originalFilename.split(".").length-1]let write = fs.createWriteStream('./upload/' + file_name )//写入本地read.pipe(write);console.log(name,file_name);await candidate.infoEditjl(name,file_name)res.send({ok: true, data: req.body})})})
//接口用到了两个插件
const { md5Code } = require('v5w-utils') //随机生成字符码作为存到文件夹的名,唯一
const formidable = require('formidable') //接收前端传递过来的二进制文件,三个参数,err错误,files传递过来的非文件参数,flie传过来的文件
获取文件后对文件进行读取,判断其文件类型(pdf,png)等,并将文件写入本地目录或服务器目录
传递回参数给操作函数
下载对应刚刚的数据库
<el-table-column label="操作"><template slot-scope="scope"><el-buttonsize="mini"@click="handleEditjl(scope.$index, scope.row)"><a :href="jlname" target="_blank">下载简历</a></el-button></template></el-table-column>jsasync handleEditjl(index, row) {console.log("啊啊是",index, row.username);let username = row.username;this.jlname = `http://localhost:3030/api/job/resume?username=${username}`; await this.$axios.get(`/api/job/resume?username=${username}`)},
//直接请求接口不显示下载res.download,用动态a链接地址,html不能拼接,写成动态放data里传参数里
后端
app.get('/api/job/resume', async(req, res) => {// const result =await candidate.userrename()const name =await candidate.userrename(req.query.username)console.log("pp",name)if(name==''){res.send({data:"该生未提交简历,详情可电话联系"})}else{res.download('./upload/'+name)}})
//接口,方法传递差到的文件名后传给接口,用res.download方法下载
数据库查询方法,async userrename(username){username = escape(username)const sql = `select 简历 from candidateWHERE username = '${username}'`const row = await exec(sql)let mz = row.map((item,index,arr)=>{return item.简历})// let dd = fs.readFileSync('./upload/ee.pdf')let a = mz.toString()return a}
upload上传和下载文件相关推荐
- 从服务器上传和下载文件方法
1. ssh 安装SSH Secure Shell Client客户端 下载链接 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法参 ...
- springboot传入json和文件_Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)...
server: port: 8088 servlet: context-path: /sid spring: mvc: view: prefix: / suffix: .html /** * 返回界面 ...
- 使用PuTTY上传和下载文件
使用PuTTY(C:\Program Files\PuTTY)上传或下载文件: 双击运行该psftp.exe,可使用open打开远程主机.cd改变远程目录.lcd改变本地目录.ls查看远程文件列表.p ...
- 使用php和Amazon S3 sdk上传及下载文件
使用php和Amazon S3 sdk上传及下载文件,下载Excel文件时总是报文件损坏的错误,解决方案如下 上传 require 'vendor/autoload.php';use Aws\S3\S ...
- EasyExcel+elementUI+vue 上传、下载文件实例
本文为 easyexcel使用具体实例,包含前后端代码,前端使用 vue + elementUI+axios,后端使用 spring boot. 1. 上传文件 1.1. 后端 1.1.1. 添加依赖 ...
- Python实现向s3共享存储上传和下载文件
Python实现向s3共享存储上传和下载文件 https://www.cnblogs.com/liang545621/p/10298617.html 使用Python从S3上传和下载文件 https: ...
- windows主机用scp命令向Linux服务器上传和下载文件
windows主机用scp命令向Linux服务器上传和下载文件 文章目录: 一.scp介绍 二.scp上传和下载 1.上传 2.下载 三.scp的更多参数 一.scp介绍 scp是secure cop ...
- 利用SecureCRT上传、下载文件(使用sz与rz命令)
利用SecureCRT上传.下载文件(使用sz与rz命令) 借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. 其中,对于s ...
- Linux--用SecureCRT来上传和下载文件
转载自 Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能 ...
最新文章
- 看完50多家阵亡的初创企业,我们发现了AI创业的5个行业潜规则
- Firefox联手Chrome合作开发网页VR标准
- vue 下echarts卸载和安装指定版本
- 极简代码:1012 数字分类 (20分)
- mysql中使用BETWEEN AND
- 无处不在的container_of
- Python中的property类和@property装饰器
- windows 开启/关闭本地连接的批处理程序
- fragment与activity之间的通信
- Spark常用算子讲解一
- 33.错误处理(2)
- a类计算机机房验收规范,电子信息系统机房设计规范 GB50174-2017
- BackTrack 4 新功能
- 对于BI系统的建设,看看专业人士怎么说
- 拟合数据和原始数据误差计算
- 一款基于Zigbee技术的智慧鱼塘系统研究与设计
- excel表格公式出现#REF是什么意思
- 城市中心、华为、软通动力智慧城市联合解决方案发布
- MySQL - java.sql.SQLException: Data truncated for column ‘xx‘ at row 1
- 联想小新air13pro重装系统_联想小新Air 13怎么装win10系统|联想小新Air 13用u盘重装win10系统教程-系统城...