前端上传用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. 从服务器上传和下载文件方法

    1. ssh 安装SSH Secure Shell Client客户端 下载链接 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法参 ...

  2. springboot传入json和文件_Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)...

    server: port: 8088 servlet: context-path: /sid spring: mvc: view: prefix: / suffix: .html /** * 返回界面 ...

  3. 使用PuTTY上传和下载文件

    使用PuTTY(C:\Program Files\PuTTY)上传或下载文件: 双击运行该psftp.exe,可使用open打开远程主机.cd改变远程目录.lcd改变本地目录.ls查看远程文件列表.p ...

  4. 使用php和Amazon S3 sdk上传及下载文件

    使用php和Amazon S3 sdk上传及下载文件,下载Excel文件时总是报文件损坏的错误,解决方案如下 上传 require 'vendor/autoload.php';use Aws\S3\S ...

  5. EasyExcel+elementUI+vue 上传、下载文件实例

    本文为 easyexcel使用具体实例,包含前后端代码,前端使用 vue + elementUI+axios,后端使用 spring boot. 1. 上传文件 1.1. 后端 1.1.1. 添加依赖 ...

  6. Python实现向s3共享存储上传和下载文件

    Python实现向s3共享存储上传和下载文件 https://www.cnblogs.com/liang545621/p/10298617.html 使用Python从S3上传和下载文件 https: ...

  7. windows主机用scp命令向Linux服务器上传和下载文件

    windows主机用scp命令向Linux服务器上传和下载文件 文章目录: 一.scp介绍 二.scp上传和下载 1.上传 2.下载 三.scp的更多参数 一.scp介绍 scp是secure cop ...

  8. 利用SecureCRT上传、下载文件(使用sz与rz命令)

    利用SecureCRT上传.下载文件(使用sz与rz命令) 借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. 其中,对于s ...

  9. Linux--用SecureCRT来上传和下载文件

    转载自  Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能 ...

最新文章

  1. 看完50多家阵亡的初创企业,我们发现了AI创业的5个行业潜规则
  2. Firefox联手Chrome合作开发网页VR标准
  3. vue 下echarts卸载和安装指定版本
  4. 极简代码:1012 数字分类 (20分)
  5. mysql中使用BETWEEN  AND
  6. 无处不在的container_of
  7. Python中的property类和@property装饰器
  8. windows 开启/关闭本地连接的批处理程序
  9. fragment与activity之间的通信
  10. Spark常用算子讲解一
  11. 33.错误处理(2)
  12. a类计算机机房验收规范,电子信息系统机房设计规范 GB50174-2017
  13. BackTrack 4 新功能
  14. 对于BI系统的建设,看看专业人士怎么说
  15. 拟合数据和原始数据误差计算
  16. 一款基于Zigbee技术的智慧鱼塘系统研究与设计
  17. excel表格公式出现#REF是什么意思
  18. 城市中心、华为、软通动力智慧城市联合解决方案发布
  19. MySQL - java.sql.SQLException: Data truncated for column ‘xx‘ at row 1
  20. 联想小新air13pro重装系统_联想小新Air 13怎么装win10系统|联想小新Air 13用u盘重装win10系统教程-系统城...

热门文章

  1. HDOJ搜索题辑录I(总计100题)
  2. 为什么不能跟同事们透露自己想离职的打算?
  3. js中replace作用以及用法
  4. 树莓派26/100 - Pico控制RGB三色灯
  5. IOS 按钮点击发光效果
  6. [有效]在overleaf中GB/T 7714把作者名字全大写改成小写
  7. Android Studio无线Wifi调试手机的两种方案
  8. 基于javaweb的学生选课系统(java+javaweb+jdbc)
  9. DDD中的建模方法有哪些
  10. bcache源码分析(一)bcache使用