zoukankan      html  css  js  c++  java
  • pdf 上传和预览

    要实现以上效果:


    import { Field } from 'vant';
    Vue.use(Field);

    <van-field name="uploader" label="文件上传">

    <template #input>

    <van-uploader :max-count="1" :after-read="afterRead" v-model="uploader" accept=".pdf">

    <van-button icon="plus" type="primary" color="#00A2FF">上传文件</van-button> <!--蓝色的自定义的样式-->

    </van-uploader>

    </template>

    </van-field>


    在data里面:
    uploader:[],

    fileId :"",
    methods 方面里面:

    afterRead(file) {

    /*this.uploader[0].content*/ //base64 的pdf 二进制码

    this.uploadLibraryFile(this.uploader[0].content);

    },


    /*上传pdf的接口*/

    uploadLibraryFile(pdfBase64){

    api
    .uploadLibraryFile({

    file: pdfBase64,
    type: "pdf",

    })
    .then((res) => {

    if (res.code == 200) {

    this.overlayShow = false ; /*遮道层消失*/

    this.= res.data.fileId; /*返回的fileId*/


    } else {

    Toast.fail(res.message);

    this.overlayShow = false ; ///*遮道层消失*/

    }
    });


    },

    addFile(){

    if (this.pdfNodes.length == 0){

    if (this.fileName == "" || this.fileName.match(/^s*$/) ){

    Toast.fail('文件名称不能为空');

    return;

    };


    if (this.uploader.length == 0 ){

    Toast.fail('请上传文件');

    return;

    };

    }



    this.overlayShow = true ; /*开始出现遮道层*/


    /*接口已经改好,无需调整*/

    api
    .addMenu({

    fileId: this.fileId ,
    menuName: this.fileName,
    parentMenuId: this.thirdMenuId, //父级ID
    /* type: this.type //父级ID*/

    })
    .then((res) => {

    if (res.code == 200) {

    this.overlayShow = false ; /*遮道层消失*/

    Toast.success('新增成功');

    this.$router.push({

    name: 'productDescriptionForthClass',
    params: {

    type: this.type,
    firstMenu: this.firstMenu,
    secondMenuId: this.secondMenuId,
    thirdMenuId: this.thirdMenuId,
    thirdMName: this.thirdMName,

    }

    })



    } else {

    Toast.fail(res.message);

    this.overlayShow = false ; ///*遮道层消失*/

    }
    });


    },



    //pdf 实现预览的效果:
    通过pdf,js 实现

    第一步:下载 http://mozilla.github.io/pdf.js/getting_started/#download
    下载稳定版:
    把下载文件放到static静态资源下面:build & web 两个文件夹
    <template>
    <div class="wrap">

    <iframe :src="pSrc" width="100%" height="100%"></iframe>

    </div>
    </template>

    data:
    pSrc:'',

     mounted () {

    this.loadPDF();
    //监听返回键


    },

    methods:
    loadPDF () {

    //baseurl :pdf存放的文件路径,可以是本地的,也可以是远程,这个是远程的,亲测可以用

    /* let baseurl = 'https://assettest.hzncc.cn/HncWeb/group1/M00/19/F6/CgEUdV8Nm5KALOf0AAM_XOvHKIY664.pdf';*/

    //ie有缓存加个随机数解决 + '?r=' + new Date()
    let pSrc = this.baseurl + '?r=' + new Date();

    this.pSrc = '../../../static/web/viewer.html?file=' + encodeURIComponent(pSrc) + '.pdf';
    },

    <style scoped>
    .wrap{
    position: fixed;
    top: 46px; /*由于有navbar 所以设置top 的高度,高度很重要*/
    left: 0;
    100%;
    bottom: 0;
    }
    </style>








  • 相关阅读:
    py爬取英文文档学习单词
    windows 下使clion支持c++11操作记录
    angular在ie8下的一个bug
    连连看小游戏前端实现
    如何禁止页面文字被选中
    分享一个BUG
    描点链接元素的优化提升用户体验
    模拟淘宝滚动显示问题解决入口
    简易图片轮播效果
    支付战争
  • 原文地址:https://www.cnblogs.com/emmawang1988/p/13301255.html
Copyright © 2011-2022 走看看