vue七牛云上传图片

1.安装七牛云

npm安装

npm install qiniu-js

yarn安装

yarn add qiniu-js

在单个页面引入

import * as qiniu from "qiniu-js";
                    <van-uploader :after-read="afterRead" :before-delete="beforeDelete" :max-count="1" v-model="fileList"
                        style="position: relative;">
                        <div style="position: relative; width: 86px;height: 86px;">
                            <img src="../img/uploader.png" alt="">
                            <div class="slogo">上传logo</div>
                        </div>
                    </van-uploader>
 //上传文件 判断是否为.png-.jpg .gif .jpeg
 afterRead(files) {
            // 此时可以自行将文件上传至服务器
            const indexOfSuffix = files.file.name.lastIndexOf(".");
            const suffix = indexOfSuffix >= 0 ? files.file.name.substr(indexOfSuffix) : "";
            if (suffix === '.png' || suffix === '.jpg' || suffix === '.gif' || suffix === '.jpeg') {
                this.uploadFile(files.file);
            } else {
                Toast('暂不支持该图片格式');
            }
        },

        //上传图片 首先调取接口获取七牛云的token
   uploadFile(file) {
            const indexOfSuffix = file.name.lastIndexOf("."); //后缀名
            const suffix = indexOfSuffix >= 0 ? file.name.substr(indexOfSuffix) : "";
            const filename = "op_" + moment().unix() + suffix; // 时间戳+后缀名
            const key = this.pre + filename
            if (file) {
                this.axios.get('apply/guild/getUploadToken').then(res => {
                    if (res.data.Code === '8000') {
                        const putExtra = { fname: "", params: {}, git: null };
                        const config = { useCdnDomain: true, region: qiniu["region"].as0 };
                        let observable = qiniu["upload"](
                            file, //要上传的文件对象。
                            key, //上传到七牛云后的文件名或路径(也就是图片的后缀)。
                            res.data.Result.UploadToken, //从服务器获取的七牛云上传凭证。
                            putExtra, //额外的设置参数,包括文件名、自定义参数和自定义变量。
                            config //配置参数,设置是否使用CDN加速和所选的七牛云存储区域。
                        );
                        observable.subscribe({
                            next: ((response) => {
                                if (response.total.percent >= 100) {
                                    Toast('上传成功');
                                }
                            }),
                            error: ((err) => {
                                Toast('上传失败,请稍微再试');
                            }),
                            complete: ((response) => {
                                const key = response.key; // 获取七牛云返回的 key
                                // 在这里可以进行后续操作,如保存 key 到数据库等
                                this.from.LogoImg = key
                            })
                        })
                    }
                })
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值