我正在做一个项目,用户可以通过单击下载按钮下载文件。单击下载链接后,请求将重定向到download.php
实际下载代码所在的文件。下载后,下载次数在数据库中增加1。PHP代码(写成codeigniter
)如下
public function index($filename)
{
$item = array_shift($this->music_m->get_by(array('upload_path'=>$filename)));
if(count($item)){
if (file_exists("uploads/".$filename)) {
$item->noOfDownloads = $item->noOfDownloads + 1;
$this->music_m->save($item, $item->id);
$data = file_get_contents("uploads/".$filename); // Read the file's contents
$name = $filename;
force_download($name, $data);
}else{
echo "404 File Not Found";
exit;
}
}else{
echo "404 File Not Found!";
}
}
但我的问题是,下载次数增加了 2 或 3 甚至 6(使用 IDM)而不是 1。在带有 Firefox 浏览器的 Linux 中,它工作正常。但是在windows中,在谷歌浏览器中,它增加了2。当IDM下载文件时,情况变得最糟糕,它增加了6的下载次数。我不知道错误可能在哪里。脚本本身是否被多次调用或其他什么?