javascript - 更改 Blob 文件名

标签 javascript html

我正在使用 https://stackoverflow.com/a/49500465/10241621 中的代码从链接下载文件。它确实有效,但我不知道如何创建自定义文件名。

function forceDownload(blob, filename) {
  var a = document.createElement('a');
  a.download = filename;
  a.href = blob;
  // For Firefox https://stackoverflow.com/a/32226068
  document.body.appendChild(a);
  a.click();
  a.remove();
}

// Current blob size limit is around 500MB for browsers
function downloadResource(url, filename) {
  if (!filename) filename = url.split('\\').pop().split('/').pop();
  fetch(url, {
      headers: new Headers({
        'Origin': location.origin
      }),
      mode: 'cors'
    })
    .then(response => response.blob())
    .then(blob => {
      let blobUrl = window.URL.createObjectURL(blob);
      forceDownload(blobUrl, filename);
    })
    .catch(e => console.error(e));
}

downloadResource('https://giant.gfycat.com/RemoteBlandBlackrussianterrier.webm');

最佳答案

新文件名是函数downloadResource(url, filename)的第二个参数

function forceDownload(blob, filename) {
  var a = document.createElement('a');
  a.download = filename;
  a.href = blob;
  // For Firefox https://stackoverflow.com/a/32226068
  document.body.appendChild(a);
  a.click();
  a.remove();
}

// Current blob size limit is around 500MB for browsers
function downloadResource(url, filename) {
  if (!filename) filename = url.split('\\').pop().split('/').pop();
  fetch(url, {
      headers: new Headers({
        'Origin': location.origin
      }),
      mode: 'cors'
    })
    .then(response => response.blob())
    .then(blob => {
      let blobUrl = window.URL.createObjectURL(blob);
      forceDownload(blobUrl, filename);
    })
    .catch(e => console.error(e));
}

downloadResource('https://giant.gfycat.com/RemoteBlandBlackrussianterrier.webm', 'NewName');

关于javascript - 更改 Blob 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55929470/

相关文章:

javascript - ROR + 从文本字段中检测类名并将其替换为另一个

javascript - 传单不将本地镜像显示为叠加层

javascript - 视差/背景附件 :fixed not working in some browsers

javascript - JS 在生成的函数中等待/暂停

javascript - 如何将 HTMLElement 转换为 JSX.Element

javascript - 如何在鼠标悬停时单击 href 链接?

php - 如何将日期的文本颜色更改为白色?

html - Css 计数器输出标记和伪元素之前的差异

javascript - 我需要网络开发的建议

javascript - 如何根据一些数据动态添加 Font Awesome 图标