我正在使用sportradar api。我正在做的api調用返回一個png圖像。直到現在我已經完成了。下載API返回的圖像
const apiCall = (url) => {
return axios.get(url).then((data) => {
if(data){
return Promise.resolve(data);
}
else{
return Promise.reject();
}
});
}
//all data in data.assetlist
for(let i=0; i<data.assetlist.length; i++){
let imageLink = data.assetlist[i].links[12].href;
let url = `https://api.sportradar.us/nfl-images-p3/ap_premium${imageLink}?api_key=${api_key}`;
apiCall(url).then((data) => {
console.log(data);
let blob = new Blob(data, {type: "image/png"}); // didn't compile with this line
});
}
上面的代碼工作正常,正在返回數據。但數據是奇怪的字符,如果我正確理解它,是因爲圖像是blob類型,我正在獲取數據流。
我從here了參考,並寫下這行
let blob = new Blob(data, {type: "image/png"});
我沒有嘗試這個,因爲我怕的是,數據是如此之大,它可能會崩潰我的系統(舊筆記本電腦)。如果我這樣做是正確的,我想知道,如何將這個blob文件保存到我的系統中作爲png文件,如果沒有,那麼我想知道如何將這個數據流轉換成圖像,並可以下載並保存在本地目錄。
使用小圖像運行測試 –
axios.get是否知道將響應視爲二進制? – Musa