鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全  HTML/ vue + element ui 下載Excel后 無法打開

vue + element ui 下載Excel后 無法打開

后端返回的byte Stream數(shù)據(jù)

element ui 組件代碼

download函數(shù)

打開excel時(shí)的錯(cuò)誤

我們現(xiàn)在有一個(gè)需求: 在前端上傳一個(gè)文件,后端把文件處理下返回一個(gè)新的字節(jié)流到前端, 然后直接下載下來。
問題: 在下載Excel 之后 顯示錯(cuò)誤,不知是否有人知道怎么解決這個(gè)問題,或者哪里設(shè)置錯(cuò)誤?非常感謝!

后端使用的是Excel 2007的模板,前端下載打開的時(shí)候也用的Excel 2007

PS: 由于系統(tǒng)限制,暫時(shí)無法使用返回url download的方式去下載。

回答
編輯回答
賤人曾

懷疑是后端生成的excel本身就打不開。
建議后端先不要返回流給前端,直接生成excel文件放到臨時(shí)目錄,打開看看生成的excel是否能打開。
如果能打開,則問題就出現(xiàn)在傳輸、瀏覽器接收流生成excel文件時(shí);如果打不開,就是你生成的excel本身有問題。

2018年7月19日 10:17
編輯回答
蟲児飛

這個(gè)問題是后端生成excel文件本身就有問題
建議讓后端拍查一下問題

2018年2月20日 16:19
編輯回答
風(fēng)清揚(yáng)

問題發(fā)現(xiàn)了, 原來要用Object.data去構(gòu)建Blob對(duì)象,之前的寫法錯(cuò)誤了。。。
正確的代碼應(yīng)該是:
let url = window.URL.createObjectURL(new Blob([res.data]))

2017年6月27日 14:53