第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在reactjs中通過javascript下載文件

如何在reactjs中通過javascript下載文件

藍山帝景 2022-01-01 18:46:39
我有一個鏈接 /api/ticket/1/download 到我的服務(wù)器,如果我將它復(fù)制粘貼到瀏覽器中,它將開始下載我的文件,它的文件擴展名和一切都已經(jīng)設(shè)置好了。我怎樣才能在 javascript 中做到這一點?隨著thymeleaf我只是用<a href="myLink">它的工作一樣,如果我把它粘貼到瀏覽器中。但由于react-router a href只是轉(zhuǎn)到另一個頁面。但如果我await fetch像這樣使用:let url1 = '/api/ticket/' + fileId + '/download';        const response = await fetch(url1);        const blob = response.blob();        const url = window.URL.createObjectURL(new Blob([blob]));        const link = document.createElement('a');        link.href = url;        link.setAttribute('download', `file.jpg`);        document.body.appendChild(link);        link.click();我可以將響應(yīng)傳輸?shù)?blob,但隨后我錯過了文件名和擴展名。
查看完整描述

2 回答

?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

我發(fā)現(xiàn)解決這個問題的唯一方法是:在響應(yīng)頭中發(fā)送文件名和擴展名,然后手動解析它們。像:在春天:


myControllerMethod( HttpServletResponse response){

...

 response.setContentType(att.getType());

 response.setHeader("Content-Disposition", "attachment; filename=\"" + myFileName + "\"");

}

在反應(yīng):


const headers = response.headers;

const file = headers.get("Content-Disposition");

然后手動解析這個“文件”以獲取文件名;


查看完整回答
反對 回復(fù) 2022-01-01
?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

以這種方式嘗試,它可能會幫助您:


fetch('http://localhost:8080/employees/download')

            .then(response => {

                response.blob().then(blob => {

                    let url = window.URL.createObjectURL(blob);

                    let a = document.createElement('a');

                    a.href = url;

                    a.download = 'employees.json';

                    a.click();

                });


查看完整回答
反對 回復(fù) 2022-01-01
  • 2 回答
  • 0 關(guān)注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號