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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。