前端的非同源圖片下載


由於再日常開發中,公司往往會有一個圖片服務器。在要求前端實現圖片下載時往往會有非同源的問題。

非同源使用download屬性默認會預覽而不是下載。

由於圖片服務器往往是允許跨域的,所以我們在這里用ajax get請求的方式,獲取圖片blob文件,再由

window.URL.createObjectURL

(專門用來將blob或者file讀取成一個url的可被img,video,audio 識別顯示出來的url)

 1 function downloadImg(src,name){
 2         var x=new XMLHttpRequest();
       //禁止瀏覽器緩存;否則會報跨域的錯誤
3 x.open("GET", src+'?t='+new Date().getTime(), true); 4 x.responseType = 'blob'; 5 x.onload=function(e){ 6 var url = window.URL.createObjectURL(x.response) 7 var a = document.createElement('a'); 8 a.href = url 9 a.download = name 10 a.click() 11 } 12 x.send(); 13 }
<a href="javascript:;" id="download" onclick='downloadImg(url,name)'>下載</a>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM