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