vue 图片上传到阿里云oss

背景:本来打算用七牛的,但后不想管理太多账号,所以选择了阿里的。因为服务器全是阿里的,很多功能用的也是阿里的。

直接开始吧!

一. 申请阿里账号,开通oss,创建Bucket(不会的童鞋自行摸索一下)

二. 配置文件

为了方便管理,全部配置在config.js里了

//config.js
//阿里云oss上传配置(*号根据自己的信息替换)
var client = new OSS.Wrapper({
    region: 'oss-cn-*****',//oss地址 
    accessKeyId: '*********',//accessKeyId
    accessKeySecret: '********',//secret
    secure: true,
    bucket: '****'//oss名字
});

export default {
    client 
} 
复制代码

accessKeyId和accessKeySecret

region和bucket

配置好以后,哪里需要直接引入config

三.上传

这里vue用的是pug模板

<template  lang='pug'>
    div
        input#upload_file1(type='file' style='display:none' ref='logo'  @change="update($event,'logo')")
            span.upwarp( @click="fileClick('logo')" v-if='hotelData.logo==""')
                i.up-icon()
            span.show-pic(v-if='hotelData.logo!=""')
                img(:src='hotelData.logo' style='width: 100%;height: 100%;')
                i.del-icon(@click="delPic('logo')")
</template>
<script>
    import config from '../../../config'//引入阿里云oss配置,路径改成你自己的
    data(){
        return {
            hotelData:{
                logo:'',
            }
        }
    }

    methods:{

        //触发上传图片input
        fileClick(name) {
            this.$refs[name].click()
        },
        //上传图片
        update:function(e,name) {
            var _file=e.target.files[0],imgUrl,self=this
            var timestamp = (new Date()).valueOf();
            //这里在文件名后加一个随机数防止下次上传名字相同的图片时服务器上的图片被替换了
            config.client.multipartUpload(_file.name+timestamp, _file).then(function (result) {
                //图片太大的话上传以后会分段(参考网友的,找不到原文了)
                if(_file.size>=100*1024){
                    imgUrl=result.res.requestUrls[0].split("?")[0]
                }else{
                    imgUrl=result.url
                }
                self.hotelData[name]=imgUrl
            }).catch(function (err) {
                console.log(err);
            });
        },
        //移除上传图片
        delPic(name){
            this.hotelData[name]=''
        },
    }
</script>
复制代码
文章部分内容参考了网友的,但是现在找不到原文了,就暂时不放原文链接了,找到再补上。复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值