您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關vue3中如何實現各種類型文件進行預覽功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
首先看到的是word excel 等文檔文件的預覽,針對改問題開始還是網上搜尋了一些方法,畢竟我這經驗甚少,有人推薦a標簽直接下載預覽,顯然不符合我們預期,有人推薦excel 使用sheetjs 但是我們word 也需要另找他法,最終我還是確定了使用微軟的在線預覽,使用iframe作為載體進行
<iframe frameborder="0" :src="'https://view.officeapps.live.com/op/view.aspx?src=' + fileUrl" width='100%'> </iframe>
需要考慮的是我當時element-plus的dialog 彈框里,iframe不能很好的撐開父元素所以又填充一些代碼。并且加載過程比較慢,由于時間原因就沒有考慮進行其他方法的嘗試
對于這種pdf的預覽,感覺好解決啊,使用原來使用過的 npm install pdfjs-dist ,開搞就完了,萬萬沒想到我這個目前還沒有支持vue3 所以理所當然的上來一跑就報錯也是理所應當的,果斷百度啊,百度告訴我說,這個pdfjs-dist vue3 不支持吶還,換個方法吧,我***,用你說 我想找解決辦法,主角來了下載之后將build和web文件夾放在我們的public文件下 做一下引用,注意自己的地址是不是對,我放在了一個embed 里
data.pdfUrl = './pdf/web/viewer.html?file='+type; // 線上預覽
<embed :src="pdfUrl" />
我覺這種類型 ,我們都不必多說,直接上代碼就可以了,處理一下url
<div v-if="showImg == true" class="dialog-body-content-base-style"> <el-image class="image-preview" :src="imgUrl" /> </div>
對于視頻類型本來是想直接使用 video元素直接放里的但是我是一個有追求的程序猿,追求自己的理想,沒事就是折騰么,開始使用vue-video-palyer 進行視頻預覽,但是就是天不遂愿,完vue3 中報錯 ,說白了又來了寶貝,沒支持vue3 唄? 沒事我習慣了,推薦大家用一波vue-vam-video
npm install vue-vam-video -s
import VamVideo from "vue-vam-video"; components: { VamVideo, }, setup(props,context) { const data = reactive({ videoOption: { properties: { poster: '', src:"", preload: "auto", // loop: "loop", // autoplay:"autoplay", // muted:true }, videoStyle: { width: "100%", // height: "600px", }, controlsConfig: { fullScreenTit:"全屏", EscfullScreenTit:"退出全屏", speedTit:"倍速", yinliangTit:"音量", jingyinTit:"靜音", playTit:"播放", pauseTit:"暫停", fullScreen:true, speed:true, listen:true } }, }) }
<vam-video :properties="videoOption.properties" :videoStyle="videoOption.videoStyle" :controlsConfig="videoOption.controlsConfig" @play="playVideo" @canplay="canplayVideo" @pause="pauseVideo" ></vam-video>
吃了上邊的虧,終于還是決定使用audio 這個標簽了,直接使用就完了。
<audio :src="musicUrl" controls></audio>
關于“vue3中如何實現各種類型文件進行預覽功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。