最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue如何下載本地pdf文件

 更新時(shí)間:2024年04月26日 09:54:58   作者:bangbang給你兩錘  
這篇文章主要介紹了vue如何下載本地pdf文件問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue下載本地pdf文件

在vue中使用axios可以進(jìn)行下載

axios('/public/pdf/***.pdf', {//pdf的位置
            responseType: 'blob', //重要代碼
        }).then(res => {
            const url = window.URL.createObjectURL(new Blob([res.data]));
            const link = document.createElement('a');
            link.href = url;
            let fileName = "下載的pdf.pdf" //保存到本地的文件名稱
            link.setAttribute('download', fileName);
            document.body.appendChild(link);
            link.click();
            console.log(link);
            link.remove();
        })

實(shí)際上就是創(chuàng)建了一個(gè)a標(biāo)簽,調(diào)用了download 

<a href="/***.pdf" rel="external nofollow"  download="下載pdf.pdf">點(diǎn)擊下載</a>

放在html里面也可以下載,但是會遇到跨域問題,我是測試用的anywhere進(jìn)行測試的,也可以用nginx解決跨域,JSONP,ajax,postMessage等等都可以解決跨域問題

vue PDF下載與預(yù)覽(文件流格式和base64格式)

1、pdf下載(文件流格式)

    downClick(row) {
      console.log(row, 'pppppxxx');
      downLoadZDPdf({
        custId: '91140403MA7Y5MCH34',
        qrdType: '6'
      }).then(res => {
        const link = document.createElement('a'); // 創(chuàng)建元素
        const blob = new Blob([res.data], {
          type: 'application/pdf;charset-UTF-8'
        });
        link.style.display = 'none';
        link.href = URL.createObjectURL(blob); // 創(chuàng)建下載的鏈接
        // num++
        link.setAttribute('download', row.stmtTp + '.pdf'); // 給下載后的文件命名
        document.body.appendChild(link);
        link.click(); // 點(diǎn)擊下載
        document.body.removeChild(link); //  下載完成移除元素
        window.URL.revokeObjectURL(link.href); // 釋放掉blob對象
      });
    },

2、pdf新開窗口預(yù)覽

 preview(row) {
      getZDDataOfYL({
        custId: '91140403MA7Y5MCH34',
        qrdType: '6'
      }).then(res => {
        console.log(res, '預(yù)覽=>>>>>>>>>>>>>');
        const blob = new Blob([res.data], { type: 'application/pdf' });
        this.pdfSrc = window.URL.createObjectURL(blob);
        window.open(this.pdfSrc);// 新窗口打開,借用瀏覽器去打印
      });
    },

3、base64格式

需將base64格式轉(zhuǎn)化下

// base64轉(zhuǎn)文件
    dataURLtoBlob(baseData) {
      var bstr = atob(baseData);
      var n = bstr.length;
      var u8arr = new Uint8Array(n);
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
      }
      this.transData = new Blob([u8arr], { type: `application/pdf;charset-UTF-	8;application/vnd.ms-excel` });
    },
    
getPDFDataOfYL({ fileId: item.DOC }).then(res => {
        this.loading = false;
        if (res.data.data) {
          // 預(yù)覽
          if (flag !== 'DOWN') {
            this.basePdf = res?.data?.data;
            const basedata = res.data.data;
            this.pdfContent = 'data:application/pdf;base64,' + basedata;
            this.src = pdf.createLoadingTask({ url: this.pdfContent, CMapReaderFactory });
            this.src.promise.then(pdf => {
              this.numPages = pdf.numPages;
            });
          } else { // 下載
            this.dataURLtoBlob(res?.data?.data);
            var reader = new FileReader();
            reader.readAsDataURL(this.transData);

            reader.onload = function (e) {
              // 兼容IE
              if (window.navigator.msSaveOrOpenBlob) {
                var bstr = atob(e.target.result.split(',')[1]);
                var n = bstr.length;
                var u8arr = new Uint8Array(n);
                while (n--) {
                  u8arr[n] = bstr.charCodeAt(n);
                }
                var blob = new Blob([u8arr]);
                window.navigator.msSaveOrOpenBlob(blob, item.DOCNAME);
              } else {
                // 轉(zhuǎn)換完成,創(chuàng)建一個(gè)a標(biāo)簽用于下載
                const a = document.createElement('a');
                a.download = item.DOCNAME; // 這里寫你的文件名
                a.href = e.target.result;
                document.body.appendChild(a);
                a.click();
                document.body.removeChild(a);
              }
            };
          }
        }
      });

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue原理Compile從新建實(shí)例到結(jié)束流程源碼

    vue原理Compile從新建實(shí)例到結(jié)束流程源碼

    這篇文章主要為大家介紹了vue原理Compile從新建實(shí)例到結(jié)束流程源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue echarts繪制甘特圖的示例代碼

    Vue echarts繪制甘特圖的示例代碼

    甘特圖是一種條狀圖,直觀展示項(xiàng)目進(jìn)展隨時(shí)間的走勢及聯(lián)系,其中,項(xiàng)目時(shí)間由橫軸表示,項(xiàng)目活動由縱軸表示,本文給大家介紹了Vue echarts繪制甘特圖的實(shí)現(xiàn)方法,并有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • Vue中多元素過渡特效的解決方案

    Vue中多元素過渡特效的解決方案

    本文將詳細(xì)介紹通過Vue使多元素進(jìn)行過渡動畫,需要的朋友可以參考下
    2020-02-02
  • Vue項(xiàng)目每次發(fā)版后要清理瀏覽器緩存問題解決辦法

    Vue項(xiàng)目每次發(fā)版后要清理瀏覽器緩存問題解決辦法

    最近項(xiàng)目更新頻繁,每次一更新客戶都說還跟之前的一樣,一查原因是因?yàn)榭蛻魶]有清空瀏覽器的緩存,所以為了方便客戶看到最新版本,開始調(diào)研再發(fā)布新版本后自動清理緩存,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目每次發(fā)版后要清理瀏覽器緩存問題的解決辦法,需要的朋友可以參考下
    2024-02-02
  • Vue使用axios(Ajax)+ElementUI實(shí)現(xiàn)登錄實(shí)踐

    Vue使用axios(Ajax)+ElementUI實(shí)現(xiàn)登錄實(shí)踐

    本文介紹了如何使用Vue和ElementUI框架創(chuàng)建一個(gè)登錄頁面,并實(shí)現(xiàn)前后端交互,同時(shí),還討論了跨域問題的解決方案以及ES6中的箭頭函數(shù)
    2026-03-03
  • Vue3使用icon的兩種方式實(shí)例

    Vue3使用icon的兩種方式實(shí)例

    vue開發(fā)網(wǎng)站的時(shí)候,往往圖標(biāo)是起著很重要的作用,下面這篇文章主要給大家介紹了關(guān)于Vue3使用icon的兩種方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • vue如何判斷dom的class

    vue如何判斷dom的class

    這篇文章主要介紹了vue如何判斷dom的class,vue點(diǎn)擊給dom添加class然后獲取含有class的dom文件,具體內(nèi)容詳情大家參考下本文
    2018-04-04
  • vue+element實(shí)現(xiàn)表格新增、編輯、刪除功能

    vue+element實(shí)現(xiàn)表格新增、編輯、刪除功能

    這篇文章主要為大家詳細(xì)介紹了vue+element實(shí)現(xiàn)表格新增、編輯、刪除功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • vue3+ts項(xiàng)目之安裝eslint、prettier和sass的詳細(xì)過程

    vue3+ts項(xiàng)目之安裝eslint、prettier和sass的詳細(xì)過程

    這篇文章主要介紹了vue3+ts項(xiàng)目02-安裝eslint、prettier和sass的詳細(xì)過程,在本文講解中需要注意執(zhí)行yarn format會自動格式化css、js、html、json還有markdown代碼,需要的朋友可以參考下
    2023-10-10
  • vue中組件樣式?jīng)_突的問題解決

    vue中組件樣式?jīng)_突的問題解決

    默認(rèn)情況下,寫在.vue組件中的樣式會全局生效,因此很容易造成組件之間的樣式?jīng)_突問題,本文就來介紹一下如何解決此問題,感興趣的可以了解一下
    2023-12-12

最新評論

泾川县| 滦平县| 安吉县| 穆棱市| 博湖县| 贵德县| 青海省| 元氏县| 资阳市| 五峰| 柞水县| 淳安县| 于都县| 临清市| 越西县| 澄江县| 关岭| 罗平县| 重庆市| 镇远县| 郸城县| 鄂州市| 左云县| 垫江县| 将乐县| 永平县| 松溪县| 裕民县| 当雄县| 安图县| 荣昌县| 红河县| 沁水县| 新安县| 台南县| 运城市| 宜春市| 蒙自县| 安岳县| 龙陵县| 习水县|