SoFunction
Updated on 2025-04-06

vue uses file-save plugin to save various format files

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
.pdf 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.