Vue下载图片到本地

发布时间:2023-05-23

一、从Vue下载文件到本地

当我们需要在Vue中实现文件下载时,可以使用第三方库FileSaver.js,使用它可以轻松地将文件保存在客户端本地。 首先,安装FileSaver.js:

npm install file-saver --save

然后在Vue中使用:

import FileSaver from 'file-saver'

定义一个下载方法:

download() {
 let file = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
 FileSaver.saveAs(file, "hello.txt");
}

点击下载按钮:

<button @click="download">下载</button>

这样就可以将"Hello,world!"保存为hello.txt文件。

二、Vue下载图片

要下载图片,我们可以使用HTML5中的一个API——Canvas,将要下载的图片绘制到Canvas上,然后将Canvas保存为图片文件。 首先,将图片绘制到Canvas上:

download() {
 let img = new Image();
 img.src = 'https://xxxxx.jpg';
 img.crossOrigin = 'anonymous';
 img.onload = function() {
   let canvas = document.createElement('canvas');
   canvas.width = img.width;
   canvas.height = img.height;
   let ctx = canvas.getContext('2d');
   ctx.drawImage(img,0,0);
   canvas.toBlob(function(blob) {
     FileSaver.saveAs(blob, 'test.jpg');
   });
 }
}

这里使用crossOrigin = "anonymous"解决跨域的问题。 然后,在Vue中使用:

import FileSaver from 'file-saver'
export default {
 methods: {
   download() {
     // 上述方法
   }
 }
}

三、下载Vue官网到本地

如果需求是对整个网站进行下载,并不只限于图片,你可以使用第三方库wget.js,它提供了完整的下载工作流,可以下载指定链接的文件。 首先,安装wget.js:

npm install -S wget

然后在Vue中使用:

import Wget from 'wget'
export default {
 methods: {
   downloadVue() {
     let download = new Wget('https://cn.vuejs.org/');
     download.on('end', function(output) {
       console.log(output);
     });
     download.on('error', function(err) {
       console.log(err);
     });
     download.start();
   }
 }
}

以上就是使用Vue下载文件、图片、整个Vue官网的方法。