vue.jsは画像のURLに従って画像をダウンロードします

vue.jsは画像のURLに従って画像をダウンロードします

最近、フロントエンドの vue.js ドッキング機能モジュールに取り組んでいたとき、画像をダウンロードする機能を実装する必要がありました。バックエンドは画像の URL の文字列を返しました。さまざまな方法を試した結果、ダウンロードをクリックすると、新しい画像の Web ページにジャンプすることがわかりました。しばらく考えた後、ようやくこの問題を解決しました。

これはバックエンドから返される JSON データです (重要な情報の漏洩を防ぐために IP アドレスはコード化されています)。

私の HTML での参照は次のようになります:

<a @click="downCom" >
                ライセンスをダウンロード<i class="icon-down"></i>
              </a>

vue.js メソッドで画像をダウンロードする方法:

ダウンコム() {
      that = this とする;
      this.$http.files().then(res => {
        hreLocal=""; とします。
        hreLocal = res.data.data.url;
        this.downloadByBlob(hreLocal,"pic")

      });
    },

次のメソッドを直接使用できます。このメソッドに画像の URL を渡すだけで、vue.js を実装して画像をダウンロードできます。

downloadByBlob(url,name) {
    画像 = 新しい画像()
    image.setAttribute('crossOrigin', '匿名')
    image.src = URL
    イメージ.onload = () => {
      キャンバスを document.createElement('キャンバス') にします。
      キャンバス幅 = 画像幅
      キャンバスの高さ = 画像の高さ
      ctx = canvas.getContext('2d') とします。
      ctx.drawImage(画像、0、0、画像.幅、画像.高さ)
      キャンバス.toBlob((blob) => {
        url = URL.createObjectURL(blob) とします。
        ダウンロード(URL,名前)
        // 使用後は URL オブジェクトを解放します URL.revokeObjectURL(url)
      })
    }
  },

download(url,name) メソッドが呼び出されました:

関数ダウンロード(href, name) {
  eleLink = document.createElement('a') とします。
  eleLink.download = 名前
  eleLink.href = href
  eleLink.click()
  eleLink.削除()
}

上記のコードを完了すると、画像を閲覧する代わりにダウンロードできるようになります。

最後に、画像をクリックしてダウンロードすると、次のような効果が得られます。

これで、画像 URL に従って vue.js で画像をダウンロードする方法についての説明は終わりです。vue.js の画像 URL ダウンロードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 異なるページ間のJavaScriptデータ転送(URLパラメータ取得)
  • Springboot で URL の後の jsessionid を削除する方法
  • JavaScript における URL オブジェクトの素晴らしい使い方
  • JavaScript ライブラリ urlcat URL ビルダー ライブラリ

<<:  Linux で Oracle データベースをバックアップするためのスケジュールされたタスクの設定に関するチュートリアル

>>:  MySQLカスタム関数とストアドプロシージャの詳細な説明

推薦する

MySQL がエラーを報告: ファイルが見つかりません: './mysql/plugin.frm' 解決策

問題を見つける最近、仕事中に問題が見つかりました。問題は、MySQL ディスクがいっぱいだったことで...

binlog2sql と簡単なバックアップおよびリカバリを使用して mysql8.0.20 を構成するための詳細な手順

目次最初のステップのインストールステップ2: MySQLデータを準備する3 番目のステップは、bin...

完全バックアップとポイントインタイムバックアップにmysqldumpを使用する方法

Mysqldump は MySQL の論理バックアップに使用されます。高速ではありませんが、柔軟性が...

html+css3で実装されたログインインターフェース

成果を達成するまずHTMLを使って基本的なフレームワークを構築します <本文> <...

HTML Webページ作成チュートリアル iframeタグを慎重に使用してください

iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...

React プロジェクトにおける TypeScript の使用の概要

序文この記事では、TS の基本的な概念ではなく、プロジェクトで TypeScript (以下、TS ...

SQL ストアド プロシージャの取得、データ取得、プロセス分析

この記事は主に、SQL のストアド プロシージャから返されたデータを取得するプロセスの分析を紹介しま...

CSS3 でのシンプルな LED デジタル時計の実装方法

これは多くの人がやったことがあるはずです。ただうずうずして書きたかったので、時間をかけていじってダー...

HTMLはWEB標準の開発の中心的な基盤です

HTML 中心のフロントエンド開発は、ほぼ Web 標準の意味です。共通しているのは「分離」という考...

Linux での JDK のインストール (OpenJDK のアンインストールを含む) の概要

1. openjdkを表示する rpm -qa|grep jdk 2. openjdk を削除します...

Linux の Docker コンテナで bash を終了する 2 つの方法

bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...

VUEプロジェクトでXSS攻撃に遭遇した実体験

目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...

CentOS 7.9 の zabbix5.0.14 のインストールと設定プロセス

目次1. 基本的な環境設定2. データベースをインストールする3. zabbix関連コンポーネントを...

CentOS SVN サーバーで複数のプロジェクトを管理する方法

一つの要求一般的に、企業には複数のプロジェクトがあります。SVN サーバーを設定した後は、プロジェク...