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カスタム関数とストアドプロシージャの詳細な説明

推薦する

純粋な CSS でカスタムラジオボタンとチェックボックス機能を実装する

1. 効果を達成する 2 知識ポイント2.1 <label> タグHTML では、<...

Samba を使用して Linux サーバー上で共有ファイル サービスを構築する方法

最近、私たちの小さなチームは、サーバー上の共有フォルダーを共有して、全員がパブリックリソースドキュメ...

mysql8.0.20 のデータディレクトリを移行する方法

mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...

EXPLAIN コマンドの詳細な説明と MySQL での使用方法

1. シナリオの説明: 同僚から MySQL で explain を使用する方法を教わったので、返さ...

Vue でのカスタムディレクティブの基本的な使用方法

目次序文文章1. グローバル登録2. 部分登録3. フック機能とパラメータ設定4. 柔軟な使い方(1...

CSS3 ボタン境界アニメーションの実装

まず効果を見てみましょう: html <a href="#"> &l...

MySQL 5.7.21 解凍バージョンのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.21の解凍版をダウンロードしてインストールする詳細な手順を記録して...

Linux に JDK1.8 をインストールするための詳細なチュートリアル

1. 設置前の清掃 rpm -qa | grep jdk rpm -qa | grep gcj yu...

VueはBaidu Mapsを使用して都市の位置特定を実現

この記事では、参考までに、Baidu Mapsを使用して都市の位置特定を実現するVueの具体的なコー...

JavaScript でドラッグ可能なプログレスバーを実装する

この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...

Linux での UDP について学ぶ

目次1. UDPとLinuxの基礎の紹介2. 各機能の使い方1. ソケット機能の使用2. バインド機...

Webデザイナーの成長体験

<br />まず最初に、私はこのグループの中では完全な新人だということを述べなければなり...

HTML 描画ユーザー登録ページ

この記事では、HTML描画ユーザー登録ページの具体的な実装コードを参考までに共有します。具体的な内容...

nginx ベースのブラウザネゴシエーションキャッシュプロセスの詳細な説明

この記事は主に、nginx に基づいてブラウザネゴシエーションキャッシュを設定する詳細なプロセスを紹...

VMware15 centos7 ブリッジモード ssh に突然アクセスできなくなる問題を解決する

仮想マシンに独自の LAN IP を持たせたいので、テストを容易にするためにブリッジを使用します。 ...