前端下載文件重命名解決


背景:從服務器下載的資源文件,無法修改名稱,產品需要改名稱的情況下,只能麻煩后台同學處理

解決方案:

/**
 * 獲取 blob
 * @param  {String} url 目標文件地址
 * @return {cb}
 */
function getBlob(url,cb) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = function() {
      if (xhr.status === 200) {
        cb(xhr.response);
      }
    };
    xhr.send();
}

/**
* 保存
* @param  {Blob} blob
* @param  {String} filename 想要保存的文件名稱
*/
function saveAs(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
  navigator.msSaveBlob(blob, filename);
} else {
  var link = document.createElement('a');
  var body = document.querySelector('body');
  link.href = window.URL.createObjectURL(blob);
  link.download = filename;
  // fix Firefox
  link.style.display = 'none';
  body.appendChild(link);
  link.click();
  body.removeChild(link);
  window.URL.revokeObjectURL(link.href);
};
}

/**
* 下載
* @param  {String} url 目標文件地址
* @param  {String} filename 想要保存的文件名稱
*/
export function download(url, filename) {
    getBlob(url, function(blob) {
        saveAs(blob, filename);
    });
};

 


免責聲明!

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



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