最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS通過URL下載文件并重命名兩種方式代碼

 更新時間:2023年11月01日 12:01:25   作者:訾博ZiBo  
前端下載文件方法很多,url是文件地址,下面這篇文章主要給大家介紹了關于JS通過URL下載文件并重命名的兩種方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、a 標簽簡單設置 href 方式

// 下載文件
function downloadFile() {
  const link = document.createElement('a');
  link.style.display = 'none';
  // 設置下載地址
  link.setAttribute('href', file.sourceUrl);
  // 設置文件名
  link.setAttribute('download', file.fileName);
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

二、a 標簽使用 blob 數(shù)據(jù)類型方式

async function download(downloadUrl: string, downloadFileName: string ) {
  const blob = await getBlob(downloadUrl);
  saveAs(blob, downloadFileName );
}

function getBlob(url: string) {
  return new Promise<Blob>((resolve, reject) => {
    const xhr = new XMLHttpRequest();

    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = () => {
      if (xhr.status === 200) {
        resolve(xhr.response);
      } else {
        reject(new Error(`Request failed with status ${xhr.status}`));
      }
    };
    xhr.onerror = () => {
      reject(new Error('Request failed'));
    };

    xhr.send();
  });
}

function saveAs(blob: Blob, filename: string) {
  const link = document.createElement('a');
  const body = document.body;

  link.href = window.URL.createObjectURL(blob);
  link.download = filename;

  // hide the link
  link.style.display = 'none';
  body.appendChild(link);

  link.click();
  body.removeChild(link);

  window.URL.revokeObjectURL(link.href);
}

附:通過blob實現(xiàn)跨域下載并修改文件名

點擊時調(diào)用如下方法

function  load(file) {
  this.getBlob(file.url).then(blob => {
    this.saveAs(blob, file.name);
  });
},

//通過文件下載url拿到對應的blob對象

getBlob(url) {
  return new Promise(resolve => {
    const xhr = new XMLHttpRequest();

    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = () => {
      if (xhr.status === 200) {
        resolve(xhr.response);
      }
    };

    xhr.send();
  });
},
//下載文件
saveAs(blob, filename) {
  var link = document.createElement('a');
  link.href = window.URL.createObjectURL(blob);
  link.download = filename;
  link.click();
}

總結(jié) 

到此這篇關于JS通過URL下載文件并重命名兩種方式的文章就介紹到這了,更多相關JS URL下載文件并重命名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • js字符串日期yyyy-MM-dd轉(zhuǎn)化為date示例代碼

    js字符串日期yyyy-MM-dd轉(zhuǎn)化為date示例代碼

    獲取表單中的日期往后臺通過json方式傳的時候,遇到Date.parse(str)函數(shù)在ff下報錯,有類似情況的朋友可以參考下本文
    2014-03-03
  • uniapp中常用的幾種提示彈框

    uniapp中常用的幾種提示彈框

    在前端開發(fā)中,為了優(yōu)化用戶的交互體驗,常需要用到彈窗來進行提示,引導用戶操作,下面這篇文章主要給大家介紹了關于uniapp中常用的幾種提示彈框的相關資料,需要的朋友可以參考下
    2022-09-09
  • 淺談JS for循環(huán)中使用break和continue的區(qū)別

    淺談JS for循環(huán)中使用break和continue的區(qū)別

    這篇文章主要介紹了淺談for循環(huán)中使用break和continue的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Nest.js快速啟動API項目過程詳解

    Nest.js快速啟動API項目過程詳解

    這篇文章主要為大家介紹了Nest.js快速啟動API項目過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • JS實現(xiàn)移動端整屏滑動的實例代碼

    JS實現(xiàn)移動端整屏滑動的實例代碼

    本文通過實例代碼給大家分享了基于js 實現(xiàn)移動端整屏滑動效果,基本思路是檢測手指滑動方向,獲取手指抬起時的位置,減去手指按下時的位置,得正即為向下滑動了,具體實現(xiàn)代碼大家參考下本文
    2017-11-11
  • TreeView 用法(有代碼)(asp.net)

    TreeView 用法(有代碼)(asp.net)

    TreeView 用法,后臺結(jié)合asp.net需要的朋友可以參考下。
    2011-07-07
  • JavaScript中跨標簽頁通信的常見方式

    JavaScript中跨標簽頁通信的常見方式

    跨標簽頁通信是指在瀏覽器中的不同標簽頁之間進行數(shù)據(jù)傳遞和通信的過程,這篇文章為大家整理了幾個常見的跨標簽頁通信方式,感興趣的小伙伴可以了解下
    2023-10-10
  • javascript Deferred和遞歸次數(shù)限制實例

    javascript Deferred和遞歸次數(shù)限制實例

    你知道Deferred和遞歸次數(shù)限制嗎?如果還不知道,可以看看下面的實例,很好,適合新手朋友們
    2014-10-10
  • Javascript顯示和隱藏ul列表的方法

    Javascript顯示和隱藏ul列表的方法

    這篇文章主要介紹了Javascript顯示和隱藏ul列表的方法,涉及javascript針對頁面元素遍歷及顯示與隱藏的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 常用js字符串判斷方法整理

    常用js字符串判斷方法整理

    js常用方法及字符串的常用判斷方法都是在工作中經(jīng)常用到的,在本文整理了一些,感興趣的朋友可以參考下
    2013-10-10

最新評論

荣成市| 建水县| 凉山| 大洼县| 西林县| 静宁县| 绿春县| 巴楚县| 固镇县| 瓮安县| 汤阴县| 文昌市| 西丰县| 磐安县| 北碚区| 乌拉特前旗| 辽中县| 罗城| 乌鲁木齐县| 宣武区| 岳普湖县| 苗栗市| 湾仔区| 老河口市| 宁远县| 夏邑县| 德化县| 梅河口市| 西乌珠穆沁旗| 平远县| 营山县| 闽侯县| 洞口县| 清远市| 调兵山市| 河北省| 蓬安县| 崇文区| 修武县| 墨玉县| 彰化县|