Vue.js と Laravel を使用して画像をダウンロードする方法
P粉513318114
P粉513318114 2024-03-19 18:39:21
0
1
539

このボタンをクリックするとハイパーリンクボタンがあり、データベースから画像を取得し、laravelとvue jsを使用してユーザー側にダウンロードしたいと考えています。以下は私のスクリプトファイルのコードです

getImage: function() {
            axios.get('/getImage/' this.form.cashout_id )
            .then(関数(r)
                {
                const url = window.URL.createObjectURL(new Blob([r.data]));
                const link = document.createElement('a');
                リンク.href = URL;
                link.setAttribute('download', 'file.' r.headers.ext); //またはその他の拡張子
                document.body.appendChild(リンク);
                リンク.クリック();

                //ローダーを非表示にする
                i.loader = false
            })
            .catch(関数 (エラー) {
                        アラート('エラー');
            });
        },

これは、画像を取得しているコントローラー コードです。

パブリック関数 getimage($id)
   {
       $cashout = CashOutDetail::findormail($id);
       $storage_date = Carbon::parse($cashout['recorded_date']);

       応答を返す()->ダウンロード(
           storage_path('app/cashoutdetails/'. $storage_date->year .'/' . $storage_date->format('M') . '/'. $cashout->bank_receipt),
           'ファイル名.jpg',
           ['コンテンツタイプ' => '画像/jpg']
       );
   }

問題は、画像がフェッチされてコンソール ウィンドウに表示されますが、ダウンロードされないことです。誰か助けてくれませんか?

P粉513318114
P粉513318114

全員に返信(1)
P粉391677921

你应该尝试:

axios({
    メソッド: 'GET'、
    URL: '/getImage/123.jpg',
    responseType: 'blob', //  {
    const url = window.URL.createObjectURL(new Blob([response.data]));
    const link = document.createElement('a');
    リンク.href = URL;
    link.setAttribute('ダウンロード', '123.jpg');
    document.body.appendChild(リンク);
    リンク.クリック();
  });
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート