Javascript 如何使用html按钮下载dmg文件?

Javascript 如何使用html按钮下载dmg文件?,javascript,html,jquery,dmg,Javascript,Html,Jquery,Dmg,所以我在一段时间前问了这个问题,它马上就被关闭了,所以我会给出更多的细节,这个问题似乎是针对dmg文件类型的,我到目前为止从未遇到过这个问题 我只是希望能够单击一个按钮,然后下载dmg,而不需要使用太多javascript或任何其他语言 但是,使用我的代码,dmg文件会在浏览器中打开,因此会出现大量二进制乱码,如果您想了解我的意思,请点击下载MacOS dmg的文件名随着版本号是名称的一部分而更改,因此我使用php获取文件信息并创建一个存储该网址的变量。例如,我的php生成的当前链接为: var

所以我在一段时间前问了这个问题,它马上就被关闭了,所以我会给出更多的细节,这个问题似乎是针对dmg文件类型的,我到目前为止从未遇到过这个问题

我只是希望能够单击一个按钮,然后下载dmg,而不需要使用太多javascript或任何其他语言

但是,使用我的代码,dmg文件会在浏览器中打开,因此会出现大量二进制乱码,如果您想了解我的意思,请点击下载MacOS

dmg的文件名随着版本号是名称的一部分而更改,因此我使用php获取文件信息并创建一个存储该网址的变量。例如,我的php生成的当前链接为:

var downloadLinkAlt = "https://lucas-testing.000webhostapp.com/release/The City Of Truro Mariners - Management Console-1.0.19.dmg"
然后下载此链接的代码是:

<button onclick="location.href=downloadLinkAlt" id="DownloadByOSAlt" class="btn btn-sm btn-primary mt-3">Download for MacOS</button>
为MacOS下载
我知道,事实上,上面的代码工作,因为它与完全相同的链接,但与exe文件扩展名完美地工作

我尝试过的事情:

可在HTML5中用于强制下载PDF等内容的下载属性:

<button onclick="location.href=downloadLinkAlt" id="DownloadByOSAlt" class="btn btn-sm btn-primary mt-3" download>Loading...</button>
正在加载。。。
参考:

将按钮放入表单中,并使用带有链接的get请求:

<form method="get" action=downloadLinkAlt>
   <button type="submit">Download!</button>
</form>

下载!
参考:

使用一个不可见的iframe,按下按钮时其源会发生更改:

document.getElementById('my_iframe').src = downloadLinkAlt;

<iframe id="my_iframe" style="display:none;"></iframe>
document.getElementById('my_iframe').src=downloadLinkAlt;
参考:


有人对下一步尝试什么有什么建议吗?

可能不是您执行下载的方法被破坏了,而是Web服务器没有为dmg文件提供正确的mime类型。文件正在下载,而你得到的看起来像是胡言乱语,这可能就是一个迹象。浏览器不知道会发生什么

要查看服务器发送的mime类型,请在浏览器中打开开发者工具,单击网络并查看列表中下载的文件

在谷歌上搜索似乎表明DMG文件的正确mime类型是
application\octet stream
。如果在开发人员工具中查看时它没有显示这种类型,那么这可能是您的问题。如果是这样的话,那可能是别的原因。这里有一篇关于mime类型的文章:。向下滚动到底部,查看有关配置不同web服务器(Apache、IIS等)的mime类型的一些说明

还要注意,您的URL包含空格。这些应该是有效的百分比编码

另一种可能更直接的下载方式是使用超链接,如:

<a href="URL_to_your_flle.dmg">Download</a>


您可以将其样式设置为按钮。

这可能不是因为您执行下载的方法被破坏,而是因为Web服务器没有为dmg文件提供正确的mime类型。文件正在下载,而你得到的看起来像是胡言乱语,这可能就是一个迹象。浏览器不知道会发生什么

要查看服务器发送的mime类型,请在浏览器中打开开发者工具,单击网络并查看列表中下载的文件

在谷歌上搜索似乎表明DMG文件的正确mime类型是
application\octet stream
。如果在开发人员工具中查看时它没有显示这种类型,那么这可能是您的问题。如果是这样的话,那可能是别的原因。这里有一篇关于mime类型的文章:。向下滚动到底部,查看有关配置不同web服务器(Apache、IIS等)的mime类型的一些说明

还要注意,您的URL包含空格。这些应该是有效的百分比编码

另一种可能更直接的下载方式是使用超链接,如:

<a href="URL_to_your_flle.dmg">Download</a>


您可以将其样式设置为按钮。

将标记样式设置为按钮也不起作用。您可以提供有关如何设置mime类型的更多信息吗?当然没有问题。做了一些编辑。设置mime时间取决于您使用的web服务器。浏览器中“开发人员工具”的“网络”选项卡告诉您文件的mime类型是什么?如果它说应用程序/八位字节流,那么您的问题可能是其他问题。如果它不是这样说的,那么我会研究设置mime类型,这对于您拥有的任何Web服务器来说都可能是一个不同的问题。哦,别忘了从URL中删除这些空格。使用a标记样式作为按钮也不起作用。您能提供有关如何设置mime类型的更多信息吗?当然没问题。做了一些编辑。设置mime时间取决于您使用的web服务器。浏览器中“开发人员工具”的“网络”选项卡告诉您文件的mime类型是什么?如果它说应用程序/八位字节流,那么您的问题可能是其他问题。如果它不是这样说的,那么我会研究设置mime类型,这对于您拥有的任何Web服务器来说都可能是一个不同的问题。哦,别忘了从URL中删除这些空格。