国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

文件預(yù)覽功能/文件流前端展示

這篇具有很好參考價(jià)值的文章主要介紹了文件預(yù)覽功能/文件流前端展示。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

第一種方式:

文件預(yù)覽展示

轉(zhuǎn)換為 Blob對(duì)象

  // 預(yù)覽圖片 或者pdf格式文件
  getViewImg(id: string) {
    return this.http.get(`/workflow/attachment/viewImg/${id}`, {
      observe: 'response',
      responseType: 'blob'
    });
  }
    // 預(yù)覽word文件或Excel文件
  getViewFile(id: string) {
    return this.http.get(`/workflow/attachment/view/${id}`, {
      observe: 'response',
      responseType: 'blob'
    })
  }

預(yù)覽實(shí)現(xiàn)ts代碼

  // 附件預(yù)覽
  handlePreviewClick(item: any) {
    if (!this.isPreviewModalVisible) {
      this.changeIsSpinning.emit(true);
      this.isPreviewModalVisible = true;
      this.id = item.id;
      this.isImage = this.handleiIsImage(item.attachmentName);
      this.isPDF = this.handleiIsPDF(item.attachmentName);
      let type = (this.isImage || this.isPDF) ? 'getViewImg' : 'getViewFile';
      this.service[type](this.id).subscribe(
        async (res: any) => {
          if (this.isImage) {
            const downloadUrl = window.URL.createObjectURL(res.body);
            this.fileHTML = downloadUrl;
          } else if (this.isPDF) {
            let newBlob = new window.Blob([res.body], { type: 'application/pdf;charset-UTRF-8' })
            const downloadUrl = window.URL.createObjectURL(newBlob);
            this.fileHTML = downloadUrl;
          } else {
            this.fileHTML = await res.body.text();
          }
          this.changeIsSpinning.emit(false);
        }, () => {
          this.messageService.error('加載失敗');
          this.isPreviewModalVisible = false;
          this.changeIsSpinning.emit(false);
        }
      )
    }
  }

彈窗代碼

<nz-modal *ngIf="fileHTML" [nzStyle]="{ top: '50px' }" [nzWidth]="1100" [nzBodyStyle]="bodyStyle" [nzContent]="modalContent" [(nzVisible)]="isVisible" nzTitle="預(yù)覽"
  [nzFooter]="modalFooter" (nzOnCancel)="handleCancel()">
  <ng-template #modalContent>
    <div *ngIf="!isImage&&!isPDF" [innerHtml]="fileHTML"></div>
    <img *ngIf="isImage" [src]="fileHTML" alt="加載失敗" style="max-width:1044px"/>
    <iframe *ngIf="isPDF" [src]="fileHTML" alt="加載失敗" style="width:1044px;height: 510px;"></iframe>
  </ng-template>
  <ng-template #modalFooter>
    <button nz-button nzType="primary" (click)="handleOk()">確定</button>
  </ng-template>
</nz-modal>

第二種方式:

簡(jiǎn)單粗暴

展示:

//1、請(qǐng)求接口 請(qǐng)求設(shè)置responseType
axios.get(url,{resonseType:'blob'})

//2.根據(jù)返回的值創(chuàng)建一個(gè)Blob對(duì)象, 以pdf文件為例
let blob = new Blob([result],{
       type: "application/pdf;chartset=UTF-8"
})

//3.window.URL.createObjectURL創(chuàng)建一個(gè)url連接
let blob = new Blob([result],{
       type: "application/pdf;chartset=UTF-8"
})
let url = window.URL.createObjectURL(blob)

//4.在線預(yù)覽
//可以用iframe預(yù)覽,url的值為 window.URL.createObjectURL(blob),或者直接打開window.open(url)

打印:文章來源地址http://www.zghlxwxcb.cn/news/detail-757888.html

//1.創(chuàng)建iframe標(biāo)簽
const iframe = document.createElement('iframe')

//2.屬性相關(guān)
iframe.className = 'tmp-pdf';
iframe.style.display = 'none'
// blobUrl 像在線預(yù)覽1,2,3這樣得來的url
iframe.src = blobUrl

//3.創(chuàng)建好的iframe添加到頁(yè)面body
document.body.appendChild(iframe)

//4.執(zhí)行打印方法,并移除iframe
setTimeout(function() {
   iframe.contentWindow.print()
   document.body.removechild(iframe)
}, 100)

到了這里,關(guān)于文件預(yù)覽功能/文件流前端展示的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue實(shí)現(xiàn)前端視頻展示列表及特征提取、筆記、刪除、文件夾組織功能

    Vue實(shí)現(xiàn)前端視頻展示列表及特征提取、筆記、刪除、文件夾組織功能 在前端展示上傳的視頻列表時(shí),我們可以使用Element-UI中的Card組件來實(shí)現(xiàn)。同時(shí),我們還可以添加一些功能,如緩存播放的視頻、選擇視頻文本特征提取處理、寫筆記、刪除視頻、組織成文件夾結(jié)構(gòu)等。下面

    2024年02月10日
    瀏覽(26)
  • 前端展示 PDF 預(yù)覽的幾種方法

    前端展示 PDF 預(yù)覽的幾種方法

    一、js實(shí)現(xiàn)pdf預(yù)覽 HTML 內(nèi)聯(lián)框架元素 iframe 表示嵌套的 browsing context。它能夠?qū)⒘硪粋€(gè) HTML 頁(yè)面嵌入到當(dāng)前頁(yè)面中。 HTML embed 元素將外部?jī)?nèi)容嵌入文檔中的指定位置。此內(nèi)容由外部應(yīng)用程序或其他交互式內(nèi)容源(如瀏覽器插件)提供 HTML object 元素(或者稱作 HTML 嵌入對(duì)象元素)

    2024年02月09日
    瀏覽(31)
  • 前端系統(tǒng)使用iframe下載文件

    前端調(diào)用后端的接口,獲取到文件的路徑,并下載。 頁(yè)面組件存在與云端的組件庫(kù),使用window.open()無法滿足需求(在當(dāng)前頁(yè)面下載),因?yàn)槁窂绞强缬虻模詻Q定使用iframe的方式下載,部分代碼如下:

    2024年02月14日
    瀏覽(18)
  • 用html+javascript打造公文一鍵排版系統(tǒng)2:顯示源碼/顯示預(yù)覽、清除格式

    用html+javascript打造公文一鍵排版系統(tǒng)2:顯示源碼/顯示預(yù)覽、清除格式

    我們從實(shí)現(xiàn)最簡(jiǎn)單、最基本的功能開始。 一、顯示源碼/顯示預(yù)覽 我們通過btnShowSrc來實(shí)現(xiàn)示源碼/顯示預(yù)覽功能,根據(jù)btnShowSrc.value來判斷iframe的顯示的內(nèi)容并切換。 iframe默認(rèn)為顯示預(yù)覽,所以btnShowSrc.value值為“顯示源碼”,點(diǎn)擊它后,iframe就顯示源碼,并將按鈕的value改為“

    2024年02月13日
    瀏覽(20)
  • 前端視頻預(yù)覽功能的實(shí)現(xiàn)

    前端視頻預(yù)覽功能的實(shí)現(xiàn)

    CSDN話題挑戰(zhàn)賽第2期 參賽話題:前端技術(shù)分享 這是我模仿B站所寫項(xiàng)目遇到的第二個(gè)很有挑戰(zhàn)性的部分,網(wǎng)上的資料比較缺乏,還是大佬室友換了個(gè)才搜到比較有用的資料hh。 之前沒有寫過視頻相關(guān)的項(xiàng)目,所以視頻相關(guān)的API都十分陌生。從最開始的一無所知,一步步

    2023年04月08日
    瀏覽(14)
  • 前端根據(jù)url在線預(yù)覽功能

    根據(jù)使用的組件庫(kù)直接預(yù)覽 新窗口打開

    2024年02月14日
    瀏覽(19)
  • vue+pdf.js預(yù)覽本地pdf文件(可以復(fù)制文本,滾動(dòng)頁(yè)碼展示)

    vue+pdf.js預(yù)覽本地pdf文件(可以復(fù)制文本,滾動(dòng)頁(yè)碼展示)

    1、安裝pdfjs-dist插件,推薦使用2.0.943這個(gè)版本 2、頁(yè)面中引入使用 3、頁(yè)面標(biāo)簽 3、解析pdf,獲取pdf所有頁(yè)數(shù)據(jù),使用canvas渲染,并使用TextLayerBuilder創(chuàng)建文本層,可以復(fù)制文本信息 在渲染pdf數(shù)據(jù)時(shí),當(dāng)pdf文件很大渲染量很多時(shí),會(huì)導(dǎo)致頁(yè)面卡住,無法執(zhí)行其他操作;這涉及到

    2024年01月21日
    瀏覽(28)
  • [HTML]Web前端開發(fā)技術(shù)3(HTML5、CSS3、JavaScript )超鏈接,target,scrolling,marginwidth,frameborder,iframe——喵喵畫網(wǎng)頁(yè)

    [HTML]Web前端開發(fā)技術(shù)3(HTML5、CSS3、JavaScript )超鏈接,target,scrolling,marginwidth,frameborder,iframe——喵喵畫網(wǎng)頁(yè)

    希望你開心,希望你健康,希望你幸福,希望你點(diǎn)贊! 最后的最后,關(guān)注喵,關(guān)注喵,關(guān)注喵,佬佬會(huì)看到更多有趣的博客哦?。?! 喵喵喵,你對(duì)我真的很重要! 目錄 前言 超鏈接 概述 超鏈接語法、路徑及分類 超鏈接標(biāo)簽 超鏈接路徑 相對(duì)路徑的用法 超鏈接分類 超鏈接的

    2024年02月05日
    瀏覽(31)
  • Element Ui中圖片預(yù)覽功能,點(diǎn)擊當(dāng)前圖片顯示當(dāng)前圖片。

    Element Ui中圖片預(yù)覽功能,點(diǎn)擊當(dāng)前圖片顯示當(dāng)前圖片。

    #應(yīng)用場(chǎng)景# 1.頁(yè)面顯示出現(xiàn)多張圖片時(shí),需要點(diǎn)擊查看預(yù)覽 2.需要點(diǎn)擊當(dāng)前圖片就顯示當(dāng)前圖片,點(diǎn)擊下一張上一張功能不受影響 #實(shí)現(xiàn)思路# 1.使用Element Ui中的圖片預(yù)覽API previewSrcList,可以顯示點(diǎn)擊預(yù)覽效果,但是無法做到實(shí)時(shí)根據(jù)當(dāng)前點(diǎn)擊的圖片顯示預(yù)覽當(dāng)前的圖片 2.解決方

    2024年04月22日
    瀏覽(22)
  • vue項(xiàng)目預(yù)覽pdf功能(解決動(dòng)態(tài)文字無法顯示的問題)

    vue項(xiàng)目預(yù)覽pdf功能(解決動(dòng)態(tài)文字無法顯示的問題)

    最近,因?yàn)楣卷?xiàng)目需要預(yù)覽pdf的功能,開始的時(shí)候找了市面上的一些pdf插件,都能用,但是,后面因?yàn)閜df變成了需要根據(jù)內(nèi)容進(jìn)行變化的,然后,就出現(xiàn)了需要?jiǎng)討B(tài)生成的文字不顯示了。換了好多好多的插件,都無法顯示,直接無語了。 (pdf-vue3,pdf.js,vue3-pdfjs, vue - pdf -

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包