【问题标题】:How to achieve downloading file as well as updating database in PHP如何在PHP中实现下载文件和更新数据库
【发布时间】:2015-02-06 09:48:30
【问题描述】:

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

$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>";

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

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

【问题讨论】:

标签: php url-redirection


【解决方案1】:

正如我在 cmets 中提到的,你想让用户下载,不管是 JS 还是 PHP,你也希望在下载时执行 download.php。所以我认为这可能会对你有所帮助:How to force file download with PHP

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

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

【讨论】:

    猜你喜欢
    • 2013-03-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多