如何强制下载mp3?

Posted

技术标签:

【中文标题】如何强制下载mp3?【英文标题】:How do I force to download the mp3? 【发布时间】:2022-01-23 20:53:55 【问题描述】:

我正在做一个简单的 Webside 下载,但是 od 下载的是在浏览器中打开的 mp3。 我该如何更改?

<!doctype html>
<head>

    <link rel="stylesheet" href="css\stylesheet.css">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test Webseite</title>
    
</head>

<style>


</style>

<body>
    <h1>Test</h1>
    <p>Test
    </p>
    <a href="download\audio.mp3" download="audio.mp3" download="true">Download link</a>
</body>

感谢您的帮助:)

【问题讨论】:

this 有帮助吗?或者如果您使用php。要强制下载,响应需要在标头中自定义 mime 类型。在示例中,他们使用application/octet-stream 【参考方案1】:

您的代码运行良好,但是

    您不需要使用两次download 属性,因为大多数浏览器都会删除最后一个。 仅当文件引用同一域时,下载属性才有效。出于安全原因,将无法在现代浏览器中下载外部文件。

如果您希望用户下载外部文件,您可以手动或自动将该文件下载到您的服务器上并将其链接到同一个域。如果这样做,请确保您被允许这样做。

下载仅适用于同源 URL,或 blob: 和数据: 计划。 如果 Content-Disposition 标头有不同的信息 从下载属性,产生的行为可能会有所不同: 如果 header 指定文件名,它优先于文件名 在下载属性中指定。 如果标头指定了一个 内联、Chrome 和 Firefox 82 及更高版本的处置,优先考虑 属性并将其视为下载。 Firefox 82 之前的版本 优先考虑标题并内联显示内容。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download

【讨论】:

以上是关于如何强制下载mp3?的主要内容,如果未能解决你的问题,请参考以下文章

在 Ajax 成功时强制下载 .mp3 或 .zip 文件

强制外部下载 url

如何播放下载的 mp3 文件?

[libmpg123强制浮点输出,当我使用整数编码读取mp3时

如何以最少的下载量获取远程MP3的持续时间

有没有办法强制使用SoundCloud javascript流API的MP3块?