美文网首页
返回的私密路径无法展示

返回的私密路径无法展示

作者: 机智无敌的小黄 | 来源:发表于2018-08-16 11:02 被阅读16次
    <template>
    <div>
        <div class="demo-upload-list" v-for="(item,index) in uploadList" :key="index">
            <template v-if="item.status === 'finished'">
                <img :src="item.url">
                <div class="demo-upload-list-cover">
                    <Icon type="ios-eye-outline" @click.native="handleView(item)"></Icon>
                    <Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>
                </div>
            </template>
            <template v-else>
                <Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
            </template>
        </div>
        <Upload
            ref="upload"
            :show-upload-list="false"
            :default-file-list="defaultList"
            :on-success="handleSuccess"
            :format="['jpg','jpeg','png']"
            :max-size="2048"
            :on-format-error="handleFormatError"
            :on-exceeded-size="handleMaxSize"
            :before-upload="handleBeforeUpload"
            multiple
            type="drag"
            :action="path"
            :data="uptoken"
            style="display: inline-block;width:58px;">
            <div style="width: 58px;height:58px;line-height: 58px;">
                <Icon type="ios-camera" size="20"></Icon>
            </div>
        </Upload>
        <Modal title="View Image" v-model="visible">
            <img :src="imgName" v-if="visible" style="width: 100%">
        </Modal>
    </div>
    </template>
    <script>
    export default {
        data(){
            return {
                path:'https://upload.qiniup.com',
                imgName: '',
                visible: false,
                uploadList: [],
                uptoken:{},
                type:'',
            }
        },
        props: ["defaultList","uploadConfig"],
        methods: {
            //获取token
            getUpToken(){
                let vm = this;
                let url = this.common.path+'qiniuUpload/getUpToken'; 
                this.$get(url).then(res=>{
                    console.log(res.uptoken);
                    vm.uptoken.token = res.uptoken;
                })
            },
            /*======================上传图片  start=======================*/
            handleView (data) {
                this.imgName = data.s_url;
                this.visible = true;
            },
            handleRemove (file) {
                const fileList = this.$refs.upload.fileList;
                this.$refs.upload.fileList.splice(fileList.indexOf(file), 1);
                this.$emit("listenUpload",this.uploadList);
            },
            handleSuccess (res,file) {
                let vm = this;
                 //异步请求返回私密路径
                let url = this.common.path+'qiniuUpload/getPrivateUrl';
                let ajaxData = {
                    mediaType:this.type,
                    key:res.key
                }   
                this.$postFormData(
                    url,
                    this.qs.stringify(ajaxData),
                ).then(data=>{
                    file.url = data.s_url;
                    file.s_url = data.url;
                    file.name = res.key;
                    vm.$emit("listenUpload",vm.uploadList);
                });
            },
            handleFormatError (file) {
                this.$Notice.warning({
                    title: 'The file format is incorrect',
                    desc: 'File format of ' + file.name + ' is incorrect, please select jpg or png.'
                });
            },
            handleMaxSize (file) {
                this.$Notice.warning({
                    title: 'Exceeding file size limit',
                    desc: 'File  ' + file.name + ' is too large, no more than 2M.'
                });
            },
            handleBeforeUpload (file) {
                this.key = file.lastModified+Math.floor(Math.random()*9999)+'.'+file.name.split('.')[1];
                this.uptoken.key = this.key;
                this.type = file.type;
                let num = this.uploadConfig.num||5;
                let title = '最多可以上传'+ num + '张照片';
                const check = this.uploadList.length < num;
                if (!check) {
                    this.$Notice.warning({
                        title: title
                    });
                }
                return check;
            }
            /*======================上传图片  end=======================*/
        },
        mounted: function(){
            this.uploadList = this.$refs.upload.fileList;
            this.getUpToken();
        },
    };
    </script>
    <style scoped>
    .demo-upload-list{
        display: inline-block;
        width: 60px;
        height: 60px;
        text-align: center;
        line-height: 60px;
        border: 1px solid transparent;
        border-radius: 4px;
        overflow: hidden;
        background: #fff;
        position: relative;
        box-shadow: 0 1px 1px rgba(0,0,0,.2);
        margin-right: 4px;
    }
    .demo-upload-list img{
        width: 100%;
        height: 100%;
    }
    .demo-upload-list-cover{
        display: none;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        background: rgba(0,0,0,.6);
    }
    .demo-upload-list:hover .demo-upload-list-cover{
        display: block;
    }
    .demo-upload-list-cover i{
        color: #fff;
        font-size: 20px;
        cursor: pointer;
        margin: 0 2px;
    }
    </style>

    相关文章

      网友评论

          本文标题:返回的私密路径无法展示

          本文链接:https://www.haomeiwen.com/subject/ixunbftx.html