饿了么Element UI之Upload组件图片上传【原创】
图片文件换汤不换药,只要注意前端的写法即可
1.饿了么组件可以利用 http-request 的属性对上传进行自定义 :http-request="uploadFile"
2.设置文件FormData对象传入请求
const formdata = new FormData();
const file = params.file;
formdata.append("file", file);
3.全部代码
<template>
<div style="margin-top:5%">
<el-upload
:onError="uploadError"
:onSuccess="uploadSuccess"
class="upload-demo"
ref="upload"
:auto-upload="false"
accept=".eml"
multiple
:before-upload="beforeUpload"
action=" "
:http-request="uploadFile"
>
<el-button slot="trigger" size="small" type="primary">----</el-button>
<el-button slot="trigger" size="small" type="primary">----</el-button>
<el-button slot="trigger" size="small" type="primary">----</el-button>
<el-button slot="trigger" size="small" type="primary">----</el-button>
<el-button slot="trigger" size="small" type="primary">选取邮件</el-button> <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传邮件</el-button>
<div slot="tip" class="el-upload__tip">可以同时上传多个eml文件至服务器</div>
</el-upload>
</div>
</template>
<script>
import axios from "axios";
export default {
data() {
return {};
},
computed: {
//进入的用户
userSO_json() {
let userSO_json = JSON.parse(sessionStorage.getItem("userSO_json"));
return userSO_json;
}
},
methods: {
/**
* 自定义:http-request="uploadFile"之后,回调方法暂且失效,所以提示信息应该写在axios里面
*/
// 上传成功后的回调
uploadSuccess(response, file, fileList) {
console.log("上传文件", response);
this.$message({
showClose: true,
message: "恭喜你,邮件上传成功",
type: "success"
});
},
// 上传错误后的回调
uploadError(err, file, fileList) {
if (err.message != "") {
this.$message.warning(err.message);
} else {
this.$message.warning("网络错误,不能访问");
}
},
uploadFile(params) {
const formdata = new FormData();
const file = params.file;
formdata.append("file", file);
axios
.post("/api/EmlUploadController/uploadFile?userName="+this.userSO_json.userName, formdata, {
headers: {
//头部信息
"Content-Type": "multipart/form-data",
token: this.userSO_json.token
}
})
.then(response => {
this.$message({
showClose: true,
message: "恭喜你,邮件上传成功",
type: "success"
});
})
.catch(error => {
//前端的token留在点击退出按钮那里删除,这里就只是提示过期
if (error.message != "") {
this.$message.warning("此封一模一样邮件你已经上传过了");
} else {
this.$message.warning("后端token过期,请重新登录");
}
});
},
//添加任务
async beforeUpload(file) {
console.log("beforeUpload");
// const extension = file.name.split(".")[1] === "eml";
// const isLt2M = file.size / 1024 / 1024 < 10;
// if (!extension) {
// console.log("上传邮件只能是 eml格式!");
// }
// if (!isLt2M) {
// console.log("上传邮件大小不能超过 10MB!");
// }
// return extension && isLt2M;
}, //提交
submitUpload() {
this.$refs.upload.submit();
}
}
};
</script>
<style scoped>
.el-table--border,
.el-table--group {
border: none;
}
.el-table__header-wrapper th:nth-last-of-type(2) {
border-right: none;
}
.el-table--border td:nth-last-of-type(1) {
border-right: none;
}
.el-table--border::after,
.el-table--group::after {
width: 0;
}
.el-select .el-input {
width: 180px;
}
.input-with-select .el-input-group__prepend {
background-color: #fff;
}
.input-with-select {
margin-left: -5px;
}
.select {
margin-left: 0px;
}
.input-with-select {
background-color: #fff;
width: 390px;
}
.pagination {
height: 80px;
text-align: center;
}
.choose {
float: left;
}
.upload-demo {
float: left;
}
.button1 {
left: 40%;
}
.button2 {
text-align: center;
}
.divider {
margin: 0;
}
.conditionalQuery {
float: right;
height: 60px;
margin-right: 80px;
}
</style>
饿了么Element UI之Upload组件图片上传【原创】的更多相关文章
- vue问题三:element ui的upload组件上传图片成功和移除事件
element ui的upload组件上传图片成功和移除事件: 登录后获取到后台传的token存到中: sessionStorage.setItem("token",data.ob ...
- 前端element ui 文件base64加密字符串 上传
<el-form-item label="附件" prop="attachment"> <el-upload :multiple=" ...
- UI组件--element-ui--Upload多组件自定义上传
需求: 提交详细信息的表单, 并上传对应图片(如下图), 后台接口要求表单数据和图片需要一次上传完成.. 分析: 实际上, 每个element-ui Upload组件都应发送一次请求, 很明显不符合我 ...
- antd组件Upload实现自己上传
前言 在实现图片上传时,可能需要用到Upload,但是它默认的上传方式是加入图片后直接上传,如果要实现最后再一次性上传,需要自定义内容. //添加按钮的样式 const uploadButton = ...
- 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传
LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...
- Jquery图片上传组件,支持多文件上传
Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...
- vue图片上传组件
前言:很多项目中都需要用到图片上传功能,而其多处使用的要求,为了避免重复造轮子,让我决定花费一些时间去深入了解,最终封装了一个vue的图片上传组件.现将总结再次,希望有帮助. Layout <d ...
- 图片上传组件webuploader
前端组件webuploader 当时也是搞了很久参考这种demo,但是没记.现在事后大致总结下.直接上大概代码(我使用asp.net MVC来做的): 执行顺序:(get)Record/Add——A ...
- 图片上传--Upload
图片上传--Upload 图片上传基于spring框架写的代码: 1.首先:我们要再springmvc中添加试图解析器: <!-- 图片解析器 --> <bean id=" ...
- MVC文件上传05-使用客户端jQuery-File-Upload插件和服务端Backload组件自定义上传文件夹
在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢? MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文 ...
随机推荐
- 【Spring源码分析】Spring Scope功能中的动态代理 - Scoped Proxy
本文基于Springboot 3.3.2及Springcloud 2023.0.1版本编写. Spring Scoped Proxy是什么 在使用Spring cloud配置中心动态配置更新功能时,笔 ...
- 手把手教你实现Scrapy-Redis分布式爬虫:从配置到最终运行的实战指南
## 1.scrapy-redis的环境准备 pip install scrapy-redis 安装完毕之后确保其可以正常导入使用即可. 2. 实现 接下来我们只需要简单的几步操作就可以实现分布式爬虫 ...
- flex数据绑定
1 .方法绑定 [Bindable(event="myFlagChanged")] private function isEnabled():String { if (myF ...
- Go 监控告警入门 Opentelemetry
前言 Opentelemetry 分布式链路跟踪( Distributed Tracing )的概念最早是由 Google 提出来的,发展至今技术已经比较成熟,也是有一些协议标准可以参考.目前在 Tr ...
- 一文带你理解URI 和 URL 有什么区别?
当我们打开浏览器,要访问一个网站或者一个ftp服务器的时候,一定要输入一串字符串, 比如: https://blog.csdn.net/ 或者: ftp://192.168.0.111/ 这样我们就可 ...
- 一文教你如何用C代码解析一段网络数据包?【含代码】
本文的目的是通过随机截取的一段网络数据包,然后根据协议类型来解析出这段内存. 学习本文需要掌握的基础知识: 网络协议 C语言 Linux操作 抓包工具的使用 其中抓包工具的安装和使用见下文: < ...
- Java常用类——包装类 小白版个人推荐
包装类及自动装箱/拆箱 包装类是将Java中的八种基本数据类型封装成的类,所有数据类型都能很方便地与对应的包装类相互转换,以解决应用中要求使用数据类型,而不能使用基本数据类型的情况. int a = ...
- Python wheel
在 Python 的生态系统中,wheel 是一种打包格式,用于分发和安装 Python 项目.它是 Python 包的标准格式之一,旨在提高安装速度和可靠性. Wheel 的优势 快速安装:因为 w ...
- shiro的rememberMe各种漏洞一刀切解决
rememberMe的低版本AES固定密码导致的漏洞,高版本仍然有被爆破,穷举的风险等.这种东西总是在安全检测的时候被拿出来说事儿,然而项目中并未开启rememberMe,也就是说压根不需要这个功能. ...
- 将.gradle下的 带hash名称文件夹中的依赖 转换为 .m2上的依赖
背景: android studio 在无法下载依赖的情况下 , 仅 使用 mavenLocal() 本地 .gradle 下有对应依赖 , .m2下没有 故将.gradle下的 带hash名称文件 ...