用vue的element-ui的upload实现上传头像图片资源到七牛云

本文介绍了如何利用Vue的element-ui的upload组件将头像图片资源上传到七牛云,包括组件代码、上传过程、处理方法及遇到的问题。通过设置data属性、on-success回调和before-upload方法,结合qiniuTokenCreate函数生成凭证,完成上传并处理成功后的回调。遇到的问题主要涉及bucketName、存储类型匹配和图片地址拼接等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过element-ui的upload实现上传资源到七牛云功能的时候遇到了很多问题,现在和大家分享出来。

一、上传头像组件com_user_head_upload.vue:

<template>

<div>

<el-upload

class="avatar-uploader"

:action="qiniu.actionPath"

:show-file-list="false"

:data="qiniu.postData"

accept="image/*"

:on-success="handleAvatarHeadSuccess"

:before-upload="beforeAvatarHeadUpload"

:on-change="imageCardOneChange"

:file-list="headList">

<div class="uploadDemoBox">

<i class="addIcon">+</i>

<i class="message">点击上传</i>

</div>

</el-upload>

</div>

</template>

 

<script>

import {mapGetters,mapActions,mapMutations } from 'vuex'

import {qiniuTokenCreate} from "@/assets/js/qiniu/qiniuTokenCreate"

import { createUserHead } from '@/api/resource'

import { Message } from 'element-ui'

export default {

props: {

},

data () {

return {

headList:[],

// 头像上传

userHeadImg: '',

// 七牛云上传

qiniu:{

actionPath:'https://upload.qiniup.com/', // 放七牛云的地址

imageUrl: '',

postData:{

'token':'',

'domain':'',

}

},

}

},

computed:{

...mapGetters({

editor_id:'editor_id',

organization_id:'organization_id'

}),

},

methods: {

...mapActions([

'createUserHeadAction',

]),

...mapMutations([

'createUserHeadMutations',

'createImageListMutations',

]),

imageCardOneChange(file, fileList){

let timestamp = (new Date()).valueOf(); //时间戳

// 加上时间戳,防止,当所上传的文件已存在而报614错误的问题

this.qiniu.postData.key = timestamp + '/' + file.name

let str=file.name.substr(0,10)+"..."

fileList[0].name=str

//七牛koken

let token=qiniuTokenCreate('image')

this.qiniu.postData.token=token;

//设置资源访问地址

this.qiniu.postData.domain="http://image.i.haierzhongyou.com/"

},

handleAvatarHeadSuccess(res, file,fileList) {

let key=null

let resKey=res.key

if(resKey.indexOf(".png") != -1){

key=res.key.replace(".png","")

}else if(resKey.indexOf(".jpg") != -1){

key=res.key.replace(".jpg","")

}else if(resKey.indexOf(".gif") != -1){

key=res.key.replace(".gif","")

}else if(resKey.indexOf(".b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值