npm install qiniu-js
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
})
})
}
})
}
}
原文地址:https://blog.csdn.net/lipenghao111/article/details/134691893
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_20268.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。