单击文件下载,成功后使用 AJAX 重定向到另一个页面
On click file download, on success redirect to another page using AJAX
在我的 WordPress 项目中,我的 Download 按钮包含一个 .zip
文件,onClick 应该下载该文件。所以 HTML 产生的是:
<a id="732" class="btn btn-default download-link" href="https://example.com/download.zip">DOWNLOAD</a>
我正在使用 AJAX 刷新下载计数。
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
jQuery(document).on('click', '.download-link', function () {
var id = this.id;
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": "count_download",
"id": id
},
success: function (data) {
window.location = site.url + "/download-success?fid="+ id;
}
});
});
</script>
一切正常,直到我添加带有 link 的文件。通常这样的 link 将开始下载 .zip
文件,但即使在 AJAX 调用所花费的时间之后,页面仍会重定向到下载成功页面而不会触发下载。
大多数情况下,只有一两次文件开始下载。
P.S.: 我测试了 this 但不是我的情况。
试试这个,
将带您到另一页
success: function (data) {
window.location.href = site.url + "/download-success?fid="+ id;
}
将带您到新的另一个页面 window
success: function (data) {
window.open('site.url + "/download-success?fid="+ id');
}
同意@marc。只是为了添加更多信息,请执行此操作。
<a href='download.php?file=some_file.zip'>Download</a>
上面可以urllink下载,下面php代码在download.php
//code to update download count (UPDATE tbl_dwn SET total = total + 1)
//below is code to download (hope you know it)
$zipName = $_GET['file']; //here you've to specify the absolute path to the download.zip file
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=".$zipName."");
header("Content-length: " . filesize($zipName));
header("Pragma: no-cache");
header("Expires: 0");
readfile($zipName);
试试这个,如果您有任何问题,请告诉我。
在我的 WordPress 项目中,我的 Download 按钮包含一个 .zip
文件,onClick 应该下载该文件。所以 HTML 产生的是:
<a id="732" class="btn btn-default download-link" href="https://example.com/download.zip">DOWNLOAD</a>
我正在使用 AJAX 刷新下载计数。
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
jQuery(document).on('click', '.download-link', function () {
var id = this.id;
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": "count_download",
"id": id
},
success: function (data) {
window.location = site.url + "/download-success?fid="+ id;
}
});
});
</script>
一切正常,直到我添加带有 link 的文件。通常这样的 link 将开始下载 .zip
文件,但即使在 AJAX 调用所花费的时间之后,页面仍会重定向到下载成功页面而不会触发下载。
大多数情况下,只有一两次文件开始下载。
P.S.: 我测试了 this 但不是我的情况。
试试这个,
将带您到另一页
success: function (data) {
window.location.href = site.url + "/download-success?fid="+ id;
}
将带您到新的另一个页面 window
success: function (data) {
window.open('site.url + "/download-success?fid="+ id');
}
同意@marc。只是为了添加更多信息,请执行此操作。
<a href='download.php?file=some_file.zip'>Download</a>
上面可以urllink下载,下面php代码在download.php
//code to update download count (UPDATE tbl_dwn SET total = total + 1)
//below is code to download (hope you know it)
$zipName = $_GET['file']; //here you've to specify the absolute path to the download.zip file
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=".$zipName."");
header("Content-length: " . filesize($zipName));
header("Pragma: no-cache");
header("Expires: 0");
readfile($zipName);
试试这个,如果您有任何问题,请告诉我。