如何为mp3文件设置下载属性?

问题描述 投票:1回答:2

我一直在尝试为mp3文件建立下载链接,但似乎什么也没做。 mp3文件在正确的位置,但是当我单击它时,它会在播放音频文件的新选项卡中打开。文件位置是这样的:

<a href="forsongstab/tracks/Villagers of Ioannina City - Age of Aquarius - 01 Welcome.mp3" download="Villagers of Ioannina City - Age of Aquarius - 01 Welcome"><img class="dli" src="../images/downloadicon.jpeg">01. Welcome</a>

[如果有人能找到解决方法,请告诉我。谢谢!

html css download attributes mp3
2个回答
0
投票

仅使用javascript的解决方案:

function downloadBlob(blob, filename) {
  var a = document.createElement('a');
  a.download = filename;
  a.href = blob;
  document.body.appendChild(a);
  a.click();
  a.remove();
}

function downloadResource(url) {
  filename = url.split('\\').pop().split('/').pop();
  fetch(url, {
      mode: 'no-cors'
    })
    .then(response => response.blob())
    .then(blob => {
      let blobUrl = window.URL.createObjectURL(blob);
      downloadBlob(blobUrl, filename);
    })
    .catch(e => console.error(e));
}
<a href="#" onClick="javascript:downloadResource('https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3')">01. Welcome</a>

1
投票

您将需要将此HTTP标头添加到您的响应中,以使浏览器强制进行下载:

Content-Disposition: attachment; filename=your_filename.mp3

例如,如果您在服务器端使用PHP,则可以创建一个脚本,该脚本发送上面的标头,然后发送实际的文件内容:

$path = $_GET['path'];
header('Content-Disposition: attachment; filename=' . basename($path));
readfile($path);

如果您将此脚本称为download.php,然后链接到download.php?path = / path / to / your / file.mp3,则会使浏览器弹出一个file.mp3的下载对话框。

© www.soinside.com 2019 - 2024. All rights reserved.