jQuery从按钮下载一个zip文件?

时间:2010-05-20 23:23:41

标签: jquery button zipfile

我花了多少时间试图从按钮下载一个zipfile ....

<button type='button' id='button-download'>download zipfile</button>


$("#button-download").live("click", function() {
    $.get("http://localhost/admin/zip/002140.zip"); // doesn't work?
})

我需要一些防弹证明,这就是我在这里问的原因,谢谢。

4 个答案:

答案 0 :(得分:7)

使用普通:

<a href="http://localhost/admin/zip/002140.zip" id="button-download">download zipfile</a>

链接。然后它就可以正常工作(甚至是“防弹”),而不提供JavaScript。它还提供了用户可能从下载链接中获得的更多传统功能,例如右键单击另存为或拖放。

您当然可以使用CSS使其看起来像一个按钮而不是链接。但实际是什么,是一个链接。这就是它应该被标记的方式。

答案 1 :(得分:5)

您应该设置location.href属性以导致导航:

$("#button-download").live("click", function() {
  location.href = "http://localhost/admin/zip/002140.zip";
});

您还可以拥有一个简单的<a>元素,其样式就像是一个按钮,这样即使已禁用JavaScript的用户也可以下载该文件。

答案 2 :(得分:1)

即发送AJAX请求。

我没试过这个,但它应该在理论上起作用。如果您尝试转到已下载文件的位置,则会提示您下载而不是将您带到该页面。

<button type='button' id='button-download'>download zipfile</button>


$("#button-download").live("click", function() {
    window.location = "http://localhost/admin/zip/002140.zip";
})

答案 3 :(得分:1)

参加派对的时间已晚,但我认为我和其他人没有分享我的解决方案。

你可以拥有两全其美;一个简单的HTML链接和一个JS函数,不会丢失非JS用户。

<a id="download" href="http://www.example.com/download.zip">Download</a>

$("#download").on("click", function(e) {

    // cancel the link's original functionality
    e.preventDefault();

    // do something before downloading
    alert("Thanks for downloading!");

    // download file
    location.href = "http://www.example.com/download.zip";

});