简体   繁体   English

如何使用 vue js 和 laravel 下载图像

[英]How to download image using vue js and laravel

I have a hyperlink button on click of this, i want to fetch image from database and get it downloaded on user side with use of laravel and vue js.单击此按钮时我有一个超链接按钮,我想从数据库中获取图像并使用 laravel 和 vue js 将其下载到用户端。 Below is my code for script file下面是我的脚本文件代码

 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');
            });
        },

and now this is my controller code where image is being fetched.现在这是我正在获取图像的 controller 代码。

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']
       );
   }

Issue is that my image is being fetched and displayed in console window but unable to download.问题是我的图像被提取并显示在控制台 window 但无法下载。 Can anybody help?有人可以帮忙吗?

You should try:你应该试试:

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();
  });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM