vue 上传文件,vue文件上传预览

  vue 上传文件,vue文件上传预览

  本文主要介绍了前端某视频剪辑软件快递实现文件的上传下载示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  新建server.js

  纱线初始y

  纱线添加快速节点-D

  var express=require( express );

  const fs=require( fs );

  var path=require( path );

  const multer=require( multer );//指定路径的

  var app=express();

  app。使用(express。JSON());

  app。使用(express。urlencoded({ extended:true });

  //前端解决跨域问题

  app.all(* ),(req,res,next)={

  RES . header( Access-Control-Allow-Origin , * );

  next();

  });

  //访问静态资源

  app。使用(express。静态(路径。join(_ _ dirname));

  //文件上传

  app.post(/upload ,multer({ dest: ./public }).any(),(req,res)={

  const { fieldname,原始名称}=req。文件[0];

  //创建一个新路径

  const name=fieldname.slice(0,fieldname.indexOf( . ))));

  const newName= public/名称路径。解析(原始名称).分机;

  fs.rename(req.files[0]).路径,新名称,函数(错误){

  如果(错误){

  res.send({ code: 0,msg:上传失败,数据:[]});

  }否则{

  res.send({ code: 1,msg:上传成功,数据:newName });

  }

  });

  });

  //文件下载

  app.get(/download ,function(req,res) {

  资源下载(。/公共/测试。xls’);

  });

  //图片下载

  app.get(/download/img ,function(req,res) {

  资源下载(。/public/2。jpg’);

  });

  设端口=9527

  app.listen(port,()=console.log(`端口启动:http://localhost:$ { port } `);

  (1):前端文件上传请求

  第一种: form表单

  表单操作=http://localhost:9527/upload 方法= POST encType= multipart/form-data

  输入类型=文件名称=用户/

  输入类型=提交/

  /表单

  第一种: input输入框

  输入类型= file @ change= change handler($ event)/

  变更处理程序(事件){

  让文件=事件。目标。文件[0];

  console.log(文件,文件)

  let data=new FormData();

  data.append(files.name,files);

  console.log(data ,data)

  axios。post( http://localhost:9527/upload),数据,{

  标题:{

  "内容类型":"多部分/形式数据"

  }

  }).然后(res={

  console.log(res ,res)

  })

  },

  (2):前端文件下载

  第一种: 后端返回一个下载的链接地址,前端直接使用 即可第二种: 使用二进制流文件下载

  输入类型=按钮值=点击下载@click=handleDownload

  handleDownload() {

  axios({

  方法:“得到”,

  网址:" http://本地主机:9527/下载",

  数据:{

  测试:"测试数据"

  },

  响应类型:“数组缓冲区”//数组缓冲区是射流研究…中提供处理二进制的接口

  }).然后(响应={

  //用返回二进制数据创建一个一滴实例

  如果(!回应)退货;

  设blob=新Blob([response.data],{

  类型:应用程序/vnd。开放XML格式-office文档。电子表格ml。工作表,

  }) //for .文件格式文件

  //通过URL.createObjectURL生成文件路径

  设url=window .URL.createObjectURL(blob)

  console.log(url========,url)

  //创建a标签

  让ele=document.createElement(a )

  ele.style.display=none

  //设置超链接属性为文件路径,下载属性可以设置文件名称

  ele.href=url

  ele.download=this.name

  //将a标签添加到页面并模拟点击

  文档。查询选择器all( body )[0].阑尾(ele)

  ele.click()

  //移除a标签

  ele.remove()

  });

  },

  (3) 附加:二进制流图片的下载

  //二进制流图片文件的下载

  下载(){

  axios({

  方法:“得到”,

  URL:` http://localhost:9527/download/img `,

  responseType: arraybuffer ,

  参数:{

  编号:12

  }

  }).然后(res={

  var src= data:image/jpg;base64, btoa(新的Uint8Array(res.data))。reduce((data,byte)=data string . from charcode(byte),))

  //this.srcImg=src //图片回显

  var a=document.createElement(a )

  a.href=src

  a.download=2.jpg

  a .单击()

  a .移除()

  })

  }

  关于上传和下载前端vue express实现文件的例子的这篇文章到此为止。更多相关vue express文件上传下载内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: