vue3 のさまざまなファイルタイプのプレビュー機能の例

vue3 のさまざまなファイルタイプのプレビュー機能の例

序文

石を踏みながら川を渡るのは気持ちの良いものではありません。大企業の上司が vue3 でプロジェクトをアップグレードするのに忙しいと聞いたので、私も参加してみたいです。小さな工場で働いていますが、まだ苦労するつもりはありません。新しいプロジェクトに取り組んでいて、vue3 を直接使用しています。とても興奮しているので、結果を気にしない人もいるかもしれませんが、つまずきながらも基本的に完成しました。記録してみましょう。

今日は開発プロセスにおける機能についてお話しましょう。とにかく、時間がかかるので、まずは機能要件についてお話ししましょう。ファイルをアップロードした後、ファイルリストでクリックしてプレビューできます。画像、ワード、エクセル、その他のドキュメントファイル、PDF、ビデオ、PC側のオーディオプレビューなどのファイルメディアタイプが含まれます。

1. オフィス文書の種類のプレビュー

最初に目にしたのは、Word や Excel などのドキュメント ファイルのプレビューでした。この問題を解決するために、インターネットでいくつかの方法を検索し始めました。結局のところ、私には経験がほとんどありません。一部の人は、a タグを使用してプレビューを直接ダウンロードすることを推奨しましたが、これは明らかに私たちの期待を満たしていませんでした。一部の人は、Excel に sheetjs を使用することを推奨しましたが、Word の場合は別の方法を見つける必要もありました。最終的に、Microsoft のオンライン プレビューを使用し、iframe をキャリアとして使用することにしました。

<iframe フレームボーダー="0" 
:src="'https://view.officeapps.live.com/op/view.aspx?src=' + ファイル URL" width='100%'>
</iframe>

考慮すべき点は、当時の element-plus のダイアログポップアップボックスでは、iframe が親要素をうまく展開できなかったため、何らかのコードが入力されていたことです。また、読み込みプロセスが遅いため、時間の制約により、他の方法を試すことは考えませんでした。

2. PDF形式のプレビュー

このようなPDFプレビューの場合、簡単に解決できそうです。以前使用したnpm install pdfjs-distを使用すると完了です。現在のバージョンがvue3をサポートしていないとは思っていなかったので、実行すると当然エラーが報告されます。思い切ってBaiduで検索したところ、このpdfjs-dist vue3はサポートされていないとのことでした。別の方法を試してみましょう。私は***です、あなたは解決策を見つけたいと言いました、主人公はここにいます。ダウンロード後、ビルドフォルダーとWebフォルダーを参照用に公開ファイルの下に置いてください。アドレスが正しいかどうかに注意してください。埋め込みに入れました

  data.pdfUrl = './pdf/web/viewer.html?file='+type; // オンラインプレビュー
 <embed :src="pdfUrl" style="width: 100%; "/>

3. 画像の種類

このタイプについてはあまり言う必要はないと思います。コードを開いてURLを処理するだけです。

<div v-if="showImg == true" クラス="ダイアログボディコンテンツベーススタイル">
    <el-image
        クラス="画像プレビュー"
        :src="画像URL"
        />
</div>

4. ビデオの種類

動画タイプについては、本来は直接 video 要素を使いたかったのですが、私は自分の理想を追い求めるプログラマー志望者です。動画プレビュー用に vue-video-palyer を使い始めましたが、思ったようにはいきませんでした。vue3 でエラーが報告されました。はっきり言って、ベイビー、vue3 に対応していないのでは? 大丈夫です、慣れています。皆さんにはvue-vam-videoを使うことをお勧めします

npm インストール vue-vam-video -s
「vue-vam-video」からVamVideoをインポートします。
コンポーネント:
    ヴァムビデオ、
},
セットアップ(プロパティ、コンテキスト) {
    constデータ = リアクティブ({
        ビデオオプション: {
            プロパティ:
                ポスター: ''、
                ソース: "",
                プリロード: "自動"、
                // ループ: "ループ",
                // 自動再生: "自動再生",
                // ミュート:true
            },
            ビデオスタイル: {
                幅: "100%",
                // 高さ: "600px",
            },
            コントロール構成: {
                fullScreenTit: "フルスクリーン",
                EscfullScreenTit: 「全画面表示を終了」、
                speedTit: "スピード",
                yinliangTit: 「ボリューム」、
                jingyinTit: 「サイレント」、
                playTit: 「再生」、
                pauseTit: 「一時停止」、
                フルスクリーン:true、
                速度:true、
                聞く:true
            }
        },
    })
}     
<vam-ビデオ
    :properties="ビデオオプションのプロパティ"
    :videoStyle="ビデオオプション.videoStyle"
    :controlsConfig="ビデオオプション.controlsConfig"
    @play="ビデオを再生"
    @canplay="ビデオを再生できます"
    @pause="ビデオを一時停止"
</vam-ビデオ>

5. オーディオタイプ

上記の損失を被った後、最終的にオーディオ タグを使用して直接使用することにしました。

<audio :src="musicUrl" コントロール></audio>

まとめると、皆さんは慎重に検討することをお勧めします。大規模な工場の上司は独自の部品ライブラリを持っているのでまったく心配していませんが、小規模な工場の私たちは注意する必要があります。 Vue のコンポーネントライブラリや関数ライブラリがもっと充実することを期待します。やはり巨人の肩の上に立つのは便利ですね。ソースコードを勉強しても大丈夫です。 。 。 。 。 。

要約する

vue3 の各種ファイルのプレビュー機能に関するこの記事はこれで終わりです。vue3 ファイルのプレビューに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VueでPDFファイルのプレビューを実装する方法
  • Vue は PDF ファイルのオンライン プレビューとダウンロードを実装します (pdf.js)
  • Vue Excel アップロード プレビューとテーブル コンテンツを Excel ファイルへダウンロード
  • Vue は PDF ファイルのオンライン プレビューを実装します (pdf.js/iframe/embed を使用)
  • Vue-pdfはPDFファイルのオンラインプレビューを実装します
  • Vue で pdfjs を使用して PDF ファイルをプレビューする方法
  • vue-pdf はオンラインファイルプレビューを実現します

<<:  MySQLに必要な共通知識のまとめ

>>:  複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装

推薦する

IE6/IE7/IE8/IE9/FF 向け CSS ハック (概要)

IE8.0の正式版をインストールしたので、基本的なCSS HACKをいくつかまとめてみました。We...

Linux で jar パッケージを起動してバックグラウンドで実行する方法

jar パッケージを実行する Linux コマンドは次のとおりです。方法1: java -jar s...

MySQLでANDとORを組み合わせる問題を解決する

以下のように表示されます。 SELECT prod_name,prod_price FROM pro...

koa2 サービスに SSL を設定する方法

I. はじめに1: SSL証明書私のドメイン名は Tencent Cloud にあります。第 3 レ...

HTMLにビデオを挿入してすべてのブラウザと互換性を持たせる方法

HTML にビデオを挿入するために最もよく使用される方法は 2 つあります。1 つは古い <o...

Docker を使用してエンタープライズレベルのカスタムイメージを構築する方法

序文退社前に、ある依頼を受けました。基本イメージ規格の変更により、最新の Docker イメージ規格...

MYSQLの主キー制約とユニーク制約の違いについて簡単に説明します。

目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...

MySQLのレプリケーションとチューニングの原則と方法を分析する

1. はじめにMySQL にはレプリケーション ソリューションが付属しており、次のような利点がありま...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

JavaScript を使用して文字列内の最も繰り返しの多い文字を取得する方法

目次トピック分析する使用目的解決:コードは次のように実装されます。分析:配列とポインタ解決:コードは...

node.js でマルチコア CPU を最大限に活用する方法

目次概要node.js でマルチコア CPU を最大限に活用する方法Node で子プロセスを作成する...

CSSはフロントエンドの画像変形の問題を完璧に解決します

Toutiao IT School で、CSS がフロントエンドの画像変形の問題を完璧に解決するとい...

ウェブページ上でデスクトップ exe プログラムを呼び出す簡単な方法

この記事では主に、Web ページ上でデスクトップ exe プログラムを呼び出す方法を紹介します。 W...

src 属性と href 属性の違い

src と href には違いがあり、混同される可能性があります。 src は現在の要素を置き換える...

nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...