iT邦幫忙

0

javascript base64圖下載預設檔名問題

目前要把用base64顯示的圖做點擊下載圖片的功能

function downIMG(id) {
    var img = document.getElementById(id);
    var url = img.src.replace(/^data:image\/[^;]/, 'data:application/octet-stream');
    location.href = url;
}

目前可以成功下載,但下載檔名會預設為:下載
https://ithelp.ithome.com.tw/upload/images/20171221/20107084AstDgwZ2C3.png

不知道怎麼樣可以更改這個預設下載的名稱?請各位前輩解惑!

1 個回答

3
haoming
iT邦好手 1 級 ‧ 2017-12-21 16:46:39
最佳解答

用 a 物件可以指定檔案名稱

function downImg(id){
  var link = document.createElement('a');
  link.id = 'downurl';
  link.href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJIAA.......AAAAElFTkSuQmCC';
  link.download='file1.png';
  
  document.body.appendChild(link);
  document.getElementById('downurl').click();
}

我放在 jsbin 給你參考
https://jsbin.com/nugapum/edit?html,js,output

阿貓 iT邦新手 5 級 ‧ 2017-12-21 17:36:15 檢舉

功能正常!
謝謝前輩!

我要發表回答

立即登入回答