如何在PHP中实现文件下载和数据库更新


How to achieve downloading file as well as updating database in PHP

我有一个文件是通过我的网站下载的。我想数一下下载的次数。我用以下代码实现了它:

$dbhandle = mysql_connect($hostname, $username, $password) 
  or die("Unable to connect to MySQL");
$selected = mysql_select_db("a7871565_first",$dbhandle) 
  or die("Could not select examples");
$result = mysql_query("select * from downloads");
$row = mysql_fetch_array($result);
$count= $row{'download'};
$count= $count+1;
$result = mysql_query("UPDATE downloads SET download =$count");
echo "<script>";
    $url = "http://www.mohammediatechnologies.in/apps/TubeMateHd.apk";
    echo "window.open('$url');".PHP_EOL;
echo "</script>";

它确实会用count更新数据库并下载文件,但当用户单击下载按钮时,他会被重定向到包含上述代码的名为download.php的文件。用户会看到一个空白屏幕,这是我不想要的。文件下载在另一个窗口中打开,该窗口被阻止,因为它被视为弹出窗口。

我想要实现的是,当用户点击下载链接,用户停留在同一页面上,数据库更新,文件下载。

正如我在评论中提到的,你想让用户下载,这与JS或PHP无关,你也希望download.PHP在下载时执行。所以我认为这可能会对你有所帮助:如何使用PHP 强制下载文件

基本上,当您想在浏览器中强制下载文件时,您需要为浏览器设置适当的标题,这样它就知道您希望用户下载文件,然后将数据发送到浏览器。

在PHP框架中,有一些帮助函数可以帮助您完成同样的任务(例如,在codeigniter中,您可以使用force_download()来实现相同的任务)。