element的上传如何获取路径_vue+springboot+element+vue-resource实现文件上传教程

本文介绍如何使用Vue、SpringBoot和Element进行文件上传,包括Vue页面设置、上传前验证、文件移除确认、重写上传方法、SpringBoot后端接收文件以及CSS样式。示例代码详细解释了每个关键步骤。

vue页面设置

class="upload-demo"

action=""

:before-upload="beforeUpload" //上传前操作

:before-remove="beforeRemove" //移除钱操作

:multiple="false" //禁止多选

:http-request="myUpload" //文件上传,重写文件上传方法,action的路径不会起作用

accept=".jar" //限制文件选择类型

:drag="false"

:data="param" //参数

:file-list="fileList">//文件显示列表

点击上传

只能上传jar文件,且不超过500kb

/*文件上传前,判断文件名是否存在,等其他处理*/

beforeUpload(file){

console.log("文件名",file.name,this.fileList)

for (let i = 0; i

if (this.fileList[i].name==file.name) {

this.$message.info("文件已存在");

return false;

}

}

this.file=file;

return true;

},

/*文件移除前,提示是否删除*/

beforeRemove(file,fileList){//delJar

this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {

confirmButtonText: '确定',

cancelButtonText: '取消',

type: 'warning'

}).then(() => {

this.$http.get('/aaaa/task/del?taskId='+this.taskId+'&name='+file.name).then(function(res) {

......

});

}).catch(() => {

this.getJarList();

return false;

});

},

/*文件上传,重写文件上传方法,action的路径不会起作用*/

myUpload(file){

let fd = new FormData();

fd.append('file',this.file);//传文件

fd.append('taskId',this.taskId);//传其他参数

// fd.append('filename',file.name);//传其他参数

this.$http.post('/aaaa/task/add',fd).then(function(res) {

....

});

},

fileList一个对象的内容

name:"xxxx.jar"

status:"success"

uid:123456456

参数

this.param={

taskId:this.taskId

}

springboot设置

1.请求的注解:produces = "multipart/form-data;charset=utf-8", method = RequestMethod.POS

@RequestMapping(value = "/add", produces = "multipart/form-data;charset=utf-8", method = RequestMethod.POST)

public String addJar(int taskId, HttpServletRequest request) throws IOException, ServletException {

....

//获取文件

Part part = request.getPart("file");// input的name值

String dis = part.getHeader("Content-Disposition");

// 获取文件名--sdsf.jar

String fna = dis.substring(dis.indexOf("filename=") + 10, dis.length() - 1);

String fname = fna.substring(fna.lastIndexOf("\\") + 1, fna.length());// 有的浏览器获取的是路径+文件名

// 若是文件名为空,说明此时没有选择文件,返回,文件上传失败,选择文件

if (fname.length() < 1) {

//此时没有选择文件

}

....

}

补充知识:elementUI upload图片文件上传到指定后端接口解决方法

1. 一般后端提供接口上传文件都有参数。如果我们不传参就会报错或显示图片不存在,上传失败。所以我们要参考他的文档。action 是上传路径; ==name== 就是传参的属性(关键)。

imageUrl: '',

:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">

handleAvatarSuccess(res, file) {

console.log(res)

console.log(file)

this.imageUrl = URL.createObjectURL(file.raw);

console.log(this.imageUrl)

},

//验证图片格式

beforeAvatarUpload(file) {

const isJPG = file.type === 'image/jpeg';

const isLt2M = file.size / 1024 / 1024 < 2;

if (!isJPG) {

this.$message.error('上传头像图片只能是 JPG 格式!');

}

if (!isLt2M) {

this.$message.error('上传头像图片大小不能超过 2MB!');

}

return isJPG && isLt2M;

},

css代码

/* 图片上传css */

.avatar-uploader /deep/.el-upload {

border: 1px dashed #d9d9d9;

border-radius: 6px;

cursor: pointer;

position: relative;

overflow: hidden;

}

.avatar-uploader .el-upload:hover {

border-color: #409EFF;

}

.avatar-uploader-icon {

font-size: 28px;

color: #8c939d;

width: 100px;

height: 100px;

line-height: 100px;

text-align: center;

}

.avatar {

width: 100px;

height: 100px;

display: block;

}

以上这篇vue+springboot+element+vue-resource实现文件上传教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值