javascript - 当用户单击链接而不重定向到该特定 php 页面并同时下载 mp3 文件时,如何运行 php 脚本?
问题描述
我有一个 mp3 文件,当我通过访问地址栏中的脚本地址(如https://groupkse.net/music_files/countDownloads.php?id =3。我的问题是,当单击链接下载该 mp3 时,我想在不将浏览器重定向到该位置的情况下运行此 php 脚本。注意:mp3 与 countDownloads.php 位于同一目录中,包含链接的页面位于不同目录中,但在同一服务器上,即https://groupkse.net/songReleaseHtml/megaMuQuarantine.php
countDownloads.php 中的代码如下:
<?php
//Make connection with database
$conn = mysqli_connect("localhost", "groupkse_music_admin", "my_Password", "groupkse_music_downloads");
//Check connection
if (mysqli_connect_errno()) {
printf("Connection failed: %s\n", mysqli_connect_error());
exiit();
}
//Passing which song needs download increment
$incomingData = $_SERVER['QUERY_STRING'];
$data = substr($incomingData, strpos($incomingData, 'id=') + 3);
$id = mysqli_real_escape_string($conn, $data);
//echo "$id";
$query = "UPDATE `music_downloads` SET `downloads_number` = `downloads_number` + 1 WHERE `Id` = '$id'";
mysqli_query($conn, $query);
?>
以及来自我在 megaMuQuarantine.php 中的链接的代码:
<a href="../music_files/mu_quarantine.mp3" download="file.mp3" title="Download song" class="downloadButton" id="dButton">Download MP3</a>
解决方案
<a href="../music_files/mu_quarantine.mp3" download="file.mp3" title="Download song" class="downloadButton" id="dButton">Download MP3</a>
添加此输入以指向计算下载的 php 文件。
<input type="hidden" id="downloadCounter" value="LINK TO COUNTER" />
把它放在你网页的底部:
<script>
document.getElementById("dButton").addEventListener("click", function(event){
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
location.relod;
}
};
xhttp.open("GET", document.getElementById("downloadCounter").value(), true);
xhttp.send();
});
</script>
推荐阅读
- java - 在 Spring Boot Restful webService 中获取 Mapping 和 Pain Json 文本
- vue.js - VueJS 中的 Axios 正在混合 url。localhost + URL 给出错误。应该只是网址
- firebase - 在组合 api 中使用注入变量(nuxt.firebase)
- c - 带有 wait() 的程序编译时不包含 sys/wait.h,并带有隐式声明警告
- html - 如何更改Div中占位符的颜色?
- python - 如何在不使用两个 % 的情况下在 python 语句中使用 %
- r - 如何计算一组中的最大值并最小化另一组并取平均时间
- fluent-ui - Fluent UI React 将焦点轮廓颜色更改为主要反转颜色
- error-handling - 密钥派生上的 OpenSSL AES 对称错误
- python - 如何修复模板渲染期间的错误