element ui的upload 手动上传头像(复制就能用)

这篇具有很好参考价值的文章主要介绍了element ui的upload 手动上传头像(复制就能用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

elementui头像上传,vue.js,elementui,前端

elementui头像上传,vue.js,elementui,前端

 elementui头像上传,vue.js,elementui,前端

之前在网上看了好多,结果给的代码都不全,整了快一天,才整好,心态都崩了,想砸电脑

这里贴出来愿后来人省力 

下面的代码除了最下面的axios请求需要和自己的匹配之外。其他的可以直接复制使用了

 

服务器接口处理函数

这里只是处理函数,其余的部分没有贴,因为要贴就要贴很多node服务器的代码了

这里有需要提交两个参数,第一个是需要手动上传的base64格式的字符串,第二个时用户的id

这里因为是请求用户信息成功之后了,本地的token存储了用户id,这里默认能检测到,就不需要再手动上传了

// 更新用户头像
exports.updateAvatar = (req,res) => {
    // 通过Id来进行定位更改信息
   const sql = `update ev_users set user_pic=? where id=?`
   db.query(sql,[req.body.avatar,req.user.Id],(err,results) => {
    if(err) return res.cc('更换头像失败')
    if(results.affectedRows !== 1) return res.cc('影响多行')
    res.cc('更换头像成功',0)
   })
}

 vue代码

如果不需要token验证的话,可以把:headers="headers"删掉

标数字的注释下面的代码都是需要和自己的后台接口匹配的

<template>
    <div>
        <el-upload class="avatar-uploader" accept="JPG, .PNG, .JPEG,.jpg, .png, .jpeg" :action="url" list-type="picture"
            :headers="headers" :multiple="false" :show-file-list="false" :http-request="uploadImg">
            <img v-if="imgString" :src="imgString" class="avatar" />
            <i v-else class="el-icon-plus avatar-uploader-icon" size="mini"></i>
        </el-upload>
        <el-button type="primary" size="mini" @click="update_userInfo()">
            确认修改</el-button>
    </div>
</template>

<script>
import axios from 'axios'
//配置axios
//1.axios的默认根地址
axios.defaults.baseURL = 'http://127.0.0.1:3000'
// axios请求拦截
// 为保证其他的页面在每次请求时都确保是登录状态,便需要拦截器在请求之前加入token令牌,来让
// 后台知道此时已经登录
//request为请求,use为回调函数
axios.interceptors.request.use(config => {
    // 为请求头对象,添加 Token 验证的 Authorization 字段
    config.headers.Authorization = window.sessionStorage.getItem('token')
    return config
})
export default {
    data() {
        return {
            // base64 格式字符串
            imgString: "",
            // 2.图片上传路径
            url: "http://127.0.0.1:3000/my/update/avatar",
            // 图片上传头部信息(如果需要token就需要携带头部信息)
            headers: {
                Authorization: window.sessionStorage.getItem("token"),
            },
        };
    },
    methods: {
        // 转换base64方法时Promise对象,必须换成同步
        // 网上还有其它办法,但是尝试过后,这个方法出错的概率最低
        async uploadImg(file) {
            // 这里不一定是file.file,如果使用的方法不一样,有的是file.raw
            // 这里传入的应该是组件中携带的文件信息
            let base64Str = await this.getBase64(file.file);
            this.imgString = base64Str;
        },
        // 获取图片转base64,这里用的是Promise,所以调用方法时必须转换成同步(async,await)
        // 否则上传数据时好时坏,能不能上传成功全看运气 ^_^
        getBase64(file) {
            return new Promise(function (resolve, reject) {
                const reader = new FileReader();
                let imgResult = "";
                reader.readAsDataURL(file);
                reader.onload = function () {
                    imgResult = reader.result;
                };
                reader.onerror = function (error) {
                    reject(error);
                };
                reader.onloadend = function () {
                    resolve(imgResult);
                };
            });
        },
        //3.确认修改之后上传修改信息 axios请求
        async update_userInfo() {
            const { data: res } = await axios.post('/my/update/avatar', { avatar: this.imgString })
            console.log(res);
        }
    },
};
</script>

<style scoped lang="less">
// 头像上传区
.avatar-uploader .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: 178px;
    height: 178px;
    line-height: 178px;
    text-align: center;
}

.avatar {
    width: 100px;
    height: 100px;
    display: block;
    border-radius: 50%;
    margin: 20px 0 0 20px;
}
</style>

 文章来源地址https://www.toymoban.com/news/detail-569338.html

到了这里,关于element ui的upload 手动上传头像(复制就能用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 扩展element-ui el-upload组件,实现复制粘贴上传图片文件,带图片预览功能

    控件改造 在窗口的 el-form 控件参数中添加 @paste.native 事件,事件绑定方法名 handlePaste 也可以在其他控件中添加事件监听,看个人需求。 注意: 监听粘贴事件时,需要当前页面先获取焦点,否则无法正常监听, 可以在页面加载后调用 focus() 获取焦点 粘贴功能Js部分参考资料

    2023年04月08日
    浏览(59)
  • element-ui---头像上传

    样式 必选参数,上传的地址 是否显示已上传文件列表 文件上传成功的钩子 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。 1.代码    可以看出在上传之前和上传完成后接收的两个参数对应相应的操作。 。

    2024年02月13日
    浏览(30)
  • naive UI 的upload组件自定义手动上传图片的base64位

    网上发现还是element plus的资料比较多,其实这些组件都大同小异,记录一下方便以后使用。

    2024年02月07日
    浏览(37)
  • Element UI upload 图片上传功能

    在config/SecurityConfig配置 \\\"/xxx/**\\\"让xxx路径下的全部文件访问不需要token 在config/ResourcesConfig中增加 在data()里面加入header属性设置子属性Authorization 在el-upload里设置 在提交时 在提交时新增clear()方法调用子组件里clear方法 加入@clearImageUrl绑定方法 clearImageUrl(1) 括号内可以直接携带参

    2024年02月14日
    浏览(29)
  • element UI的Upload 自定义上传

    2024年04月22日
    浏览(18)
  • Element-UI的Upload 上传文件

    \\\"element-ui\\\": \\\"^2.15.9\\\" Upload 上传官方文档 2.1 自动上传 限制一次只能上传一个文件,并判断上传的文件大小及文件类型; 自动上传:即选择文件后即开始校验,校验通过后调接口上传到服务器 2.2 手动上传 限制一次只能上传一个文件,并判断上传的文件大小及文件类型; 手动上

    2024年02月11日
    浏览(30)
  • Element Ui 之 文件上传组件的使用 Upload

    最近正好学到了Element Ui的文件上传组件,虽然不太难但一个人琢磨还是整了很久 以下是我整理的规范性文件上传组件为例 前端 后端 此处的String dirPath = \\\"D:/files\\\"可以选取你电脑上的指定位置 接上面 如有错误,欢迎指出

    2024年02月13日
    浏览(43)
  • 使用element-ui的Upload 上传文件

    使用Upload 进行文件上传 https://element.eleme.cn/#/zh-CN/component/upload 注:当文件和一些其他数据(姓名,年龄)进行一起上传时候可分为两种过程 第一种:单独的文件上传地址,上传完文件后,后端返回该文件的地址,前端将该地址同其他数据(姓名,年龄)再次上传。 第二种:

    2024年02月12日
    浏览(34)
  • element-ui upload图片上传组件使用

    图片上传前端收集 数据 再调用接口发送到后端 组件标签内的参数: 参数 说明 类型 可选值 默认值 action 必选参数,上传的地址 string — — headers 设置上传的请求头部 object — — multiple 是否支持多选文件 boolean — — data 上传时附带的额外参数 object — — name 上传的文件字段

    2023年04月19日
    浏览(31)
  • Element ui Upload 上传图片到七牛云

    action里填写的是七牛云的服务器地址(根据自己申请的区域填,如下图,我这边用的是华北地区) 注意:开发环境可以用http但是上线时需改为https请求,不然请求失败,所以建议都用https 七牛的一张存储区域表 存储区域    区域代码    客户端上传地址    服务端上传地址

    2024年02月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包