Rumah  >  Soal Jawab  >  teks badan

Cara memuat turun imej menggunakan Vue.js dan Laravel

Saya mempunyai butang hiperpautan pada klik butang ini dan saya ingin mendapatkan imej daripada pangkalan data dan memuat turunnya ke sisi pengguna menggunakan laravel dan vue js. Di bawah ialah kod fail skrip saya

getImage: function() {
            axios.get('/getImage/' + this.form.cashout_id )
            .then(function (r) 
                {
                const url = window.URL.createObjectURL(new Blob([r.data]));
                const link = document.createElement('a');
                link.href = url;
                link.setAttribute('download', 'file.'+r.headers.ext); //or any other extension
                document.body.appendChild(link);
                link.click();

                //hide loader
                i.loader = false
            })
            .catch(function (error) {
                        alert('Error');
            });
        },

Sekarang ini kod pengawal saya yang mendapat imej.

public function getimage($id)
   { 
       $cashout = CashOutDetail::findorfail($id);
       $storage_date = Carbon::parse($cashout['recorded_date']);

       return response()->download(
           storage_path('app/cashoutdetails/'. $storage_date->year .'/' . $storage_date->format('M') . '/'.  $cashout->bank_receipt),
           'filename.jpg',
           ['Content-Type' => 'image/jpg']
       );
   }

Masalahnya ialah imej saya sedang diambil dan dipaparkan dalam tetingkap konsol, tetapi tidak dimuat turun. Ada sesiapa boleh tolong?

P粉513318114P粉513318114213 hari yang lalu404

membalas semua(1)saya akan balas

  • P粉391677921

    P粉3916779212024-03-20 09:28:48

    Anda patut mencuba:

    axios({
        method: 'GET',
        url: '/getImage/123.jpg',
        responseType: 'blob', // <-<<<<<<<<<< 
      }).then((response) => {
        const url = window.URL.createObjectURL(new Blob([response.data]));
        const link = document.createElement('a');
        link.href = url;
        link.setAttribute('download', '123.jpg');
        document.body.appendChild(link);
        link.click();
      });

    balas
    0
  • Batalbalas