视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue中七牛插件使用的实例代码
2020-11-27 22:33:51 责编:小采
文档


本文介绍了vue中七牛插件使用,我也正在学习,分享给大家,顺便留个笔记,废话不说了,如下:

<template>
 <div id="cxUpload" class="cx-upload">
 <button id="pickfiles" class="uploadBtn">上传</button> 
 </div>
</template>

<script>
 // import $ from 'jquery'
 // import "../../common/plugin/qiniu/moxie"
 // import "../../common/plugin/qiniu/plupload.dev"
 // import "../../common/plugin/qiniu/qiniu"
 import * as tools from '../../common/js/app.js'
 export default {
 props: {
 uptokenObj: Object
 },
 methods: {
 upLoadQiniu() { // 加载七牛
 let qiniuSetInter = setInterval(() => {
 if (this.uptokenObj.upToken) {
 this.initQiniu();
 // 清除定时器
 clearInterval(qiniuSetInter);
 }
 }, 1000)
 },
 initQiniu() { // 初始化七牛
 let self = this;
 let uploader = Qiniu.uploader({
 runtimes: 'html5,flash,html4', // 上传模式,依次退化
 browse_button: 'pickfiles', // 上传选择的点选按钮,**必需**
 // 其中 uptoken 是直接提供上传凭证,uptoken_url 是提供了获取上传凭证的地址,如果需要定制获取 uptoken 的过程则可以设置 uptoken_func
 uptoken: this.uptokenObj.upToken, // uptoken 是上传凭证,由其他程序生成
 get_new_uptoken: false, // 设置上传文件的时候是否每次都重新获取新的 uptoken
 // Ajax请求downToken的Url,私有空间时使用,JS-SDK 将向该地址POST文件的key和domain,服务端返回的JSON必须包含`url`字段,`url`值为该文件的下载地址
 unique_names: false, // 默认 false,key 为文件名。若开启该选项,JS-SDK 会为每个文件自动生成key(文件名)
 save_key: false, // 默认 false。若在服务端生成 uptoken 的上传策略中指定了 `save_key`,则开启,SDK在前端将不对key进行任何处理
 domain: this.uptokenObj.imgPath, // bucket 域名,下载资源时用到,如:'http://xxx.bkt.clouddn.com/' **必需**
 container: 'cxUpload', // 上传区域 DOM ID,默认是 browser_button 的父元素,
 max_file_size: '6mb', // 最大文件体积
 flash_swf_url: 'path/of/plupload/Moxie.swf', //引入 flash,相对路径
 max_retries: 1, // 上传失败最大重试次数
 dragdrop: false, // 开启可拖曳上传
 drop_element: 'cxUpload', // 拖曳上传区域元素的 ID,拖曳文件或文件夹后可触发上传
 chunk_size: '4mb', // 分块上传时,每块的体积
 filters: { //文件类型过滤,这里为图片类型
 mime_types: [{
 title: "Image files",
 extensions: "jpg,jpeg,gif,png"
 }]
 // prevent_duplicates : false //不允许选取重复文件 
 },
 auto_start: true, // 选择文件后自动上传,若关闭需要自己绑定事件触发上传,
 init: {
 'FilesAdded': function(up, files) {
 plupload.each(files, function(file) {
 // 文件添加进队列后,处理相关的事情

 });
 },
 'BeforeUpload': function(up, file) {
 // 每个文件上传前,处理相关的事情
 },
 'UploadProgress': function(up, file) {
 // 每个文件上传时,处理相关的事情
 },
 'FileUploaded': function(up, file, info) {
 // 每个文件上传成功后,处理相关的事情
 // console.log('info+++++++++++++++');
 // console.log(info);
 // 其中 info 是文件上传成功后,服务端返回的json,形式如
 // {
 // "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
 // "key": "gogopher.jpg"
 // }
 var domain = up.getOption('domain');
 var res = eval('(' + info + ')');

 // 获取上传成功后的文件的Url
 // var sourceLink = domain + res.key;
 // var symbolLink = self.uptokenObj.imgPlaceholder + res.key;
 var linkObject = {
 "sourceLink": domain + res.key,
 "symbolLink": self.uptokenObj.imgPlaceholder + res.key
 }

 self.$emit('get-path', linkObject);
 },
 'Error': function(up, err, errTip) {
 //上传出错时,处理相关的事情
 // console.log('失败----------');
 },
 'UploadComplete': function() {
 //队列文件处理完毕后,处理相关的事情
 },
 'Key': function(up, file) {
 // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
 // 该配置必须要在 unique_names: false , save_key: false 时才生效
 // 获取当前时间戳
 var timestamp = new Date().getTime();
 var key = "image/cxw/" + timestamp + ".png";
 // do something with key here
 return key
 }
 }

 });
 }
 },
 mounted() {
 this.upLoadQiniu();
 }
 }
</script>

<style lang="scss" scoped>
 .cx-upload {
 display: inline-block;
 .uploadBtn {
 width: px;
 height: 30px;
 color: #2f363c;
 outline: none;
 border: 2px solid #2f363c;
 }
 }
 
 @media screen and (max-width:8px) {
 .cx-upload {
 float: left;
 }
 }
</style>

下载本文
显示全文
专题