Use the file-saver plugin to save various format files
First download the plugin file-saver
npm install file-saver
Repackage components
import FileSaver from "file-saver"; export default class fileSave { /** * Export Excel file * @param {*} res file stream * @param {*} name File name */ static getExcel(res, name) { (res, name) let blob = new Blob([res], { type: "application/-excel" }); (blob, name + ".xlsx"); } /** * Export CSV file * @param {*} res file stream * @param {*} name File name */ static getCsv(res, name) { let blob = new Blob([res], { type: "application/-excel" }); (blob, name + ".csv"); } /** * Export picture 1 * @param {*} url Image address * @param {*} name File name */ static getImgURLs(url, name) { let last = (("."), ); (url, `${name}${last}`); } /** * Export picture 2 * @param {*} res file stream * @param {*} name File name */ static downLoadImg(res, filename) { let blob = new Blob([res], { type: "image/jpeg" }); (blob, `${filename}.jpg`); } }
vue export file (file-saver, vue2, vue3)
Install plug-ins
npm install file-saver --save // If using ts, install file-saver's typeScript type definitionnpm install @types/file-saver --save-dev
Exported format type reference
File suffix | Type |
---|---|
application/pdf | |
.doc | application/msword |
.docx | application/ |
.xls | application/-excel |
.xlsx | application/ |
.ppt | application/-powerpoint |
.pptx | application/ |
Basic use
The code is as follows:
import { saveAs } from 'file-saver'
Export (download file):
//⚠️Note: You need to configure the file type you need to export.const blob = new Blob(['File content'], { type: 'application/'}) saveAs(blob,'Exported file name')
Case
import axios from 'axios' import { saveAs } from 'file-saver'
axios({ method: 'get', url: url, responseType: 'blob', //Inject token stream, if you need to add it, you don't need to add it. headers: { 'Authorization': 'Bearer ' + getToken() } }).then(async (res) => { const blob = new Blob([], { type: 'application/- ' }) saveAs(blob, name) } else { ('Interface error') } })
Summarize
The above is personal experience. I hope you can give you a reference and I hope you can support me more.