後端返回檔案流 前端處理方法

2022-05-03 06:00:07 字數 1551 閱讀 2579

一般後端會返回檔案流的形式

前端會收到一堆亂碼

前端需要對亂碼進行轉譯  成正常的  

可以先建立乙個公共的方法檔案,這樣就可以在專案的任何地方使用

utils.js

import  from '@/common/utils/common/auth';

import axios from 'axios';

import from '@/common/utils/common/cache';

export

function $filedownload(url, config ={}) ,

data: config.data,

responsetype: 'blob'})

.then(

response =>

console.log(index)

filename = filename.substr(index + 21);

filename =decodeuri(filename);

}let filedownload = require('js-file-download');

filedownload(response.data, filename);

if (typeof config.resolve === 'function')

},error =>

}if(haserror)

if (typeof config.reject === 'function') });

}

頁面使用

import  from "@/modules/lims/utils/utils";

async  tipszpgcalendar() 

//let config = ,

//reject: () => ,

//};

let url = '/capitalplan/reportsearchzpgcalendar?startdate=' + this.startdate + '&enddate=' + this

.enddate

const hh =await $filedownload(url)

},

handleclick() 

landprojects.join(",");

str += `$,$`;

str += "\n";

}//encodeuricomponent解決中文亂碼

let uri = "data:text/csv;charset=utf-8,\ufeff" +encodeuricomponent(str);

//通過建立a標籤實現

let link = document.createelement("a");

link.href =uri;

// link.download = `參拍日曆資料表$-$.xls`;

link.click();

document.body.removechild(link);

},

返回檔案流 使用流讀取檔案內容

程式 public static void fis catch exception e 程式執行結果 通過開啟乙個到實際檔案的連線來建立乙個 fileinputstream,該檔案通過檔案系統中的 file 物件 file 指定。通過使用檔案描述符 fdobj 建立乙個 fileinputstrea...

基於前後端分離向前端返回excel資料流

前言 本文介紹的是阿里的第三方框架easyexcel 這裡使用pom依賴 這裡我排除了專案已有的依賴 com.alibabagroupid easyexcelartifactid 2.2.5version cglibgroupid cglibartifactid exclusion org.slf4...

前端處理後端返回的高精度的長整型。

有一次在專案裡碰到雪花演算法生成id,然後返回到前端。雪花演算法會生成乙個64位的二進位制資料,為乙個long型。轉換成字串後長度最多19 我們後台返回的是json的字串,在axios內部會自動呼叫 json.parse 方法把json字串轉為js資料,就會出現進度損失。如果不進行轉換,依然當做字串...