PHP+Mysql+jQuery统计文件下载次数

来源:https://www.sucaihuo.com/php/224.html 2015-06-19 06:08浏览(3504) 收藏

今天分享一款文件下载次数统计的代码,主要原理是通过前台点击链接download.php传参id,来更新点击次数。
PHP+Mysql+jQuery统计文件下载次数
分类:PHP > 函数 难易:初级
下载资源 下载积分: 30 积分

获取文件列表

<?php
require 'conn.php';

$query = mysql_query("SELECT * FROM downloads");
$lists = array();
while ($row = mysql_fetch_assoc($query)) {
    $lists[] = $row;
}
?>

读取文件列表,并加上download.php链接和参数id

<ul class="filelist">
    <?php foreach ($lists as $v) { ?>
        <li><a href="download.php?id=<?php echo $v['id'] ?>"><?php echo $v['filename'] ?><span class="downcount" title="下载次数"><?php echo $v['downloads'] ?></span><span class="download">点击下载</span></a></li>
                <?php } ?>
</ul>

前台点击文件,累加文件次数

$(function() {
        $('ul.filelist a').live('click', function() {
            var count = $('.downcount', this);
            count.text(parseInt(count.text()) + 1);
        });
});

download.php

<?php
$id = (int) $_GET['id'];

if (!isset($id) || $id == 0)
    die('参数错误!');
$query = mysql_query("select * from downloads where id='$id'");
$row = mysql_fetch_array($query);
if (!$row)
    exit;
$filename = iconv('UTF-8', 'GBK', $row['filename']); //中文名称注意转换编码
$savename =  $row['savename']; //实际在服务器上的保存名称
$myfile = 'files/' . $savename; //文件

if (file_exists($myfile)) {
    mysql_query("update downloads set downloads=downloads+1 where id='$id'");
    $file = @ fopen($myfile, "r");
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=" . $filename);
    while (!feof($file)) {
        echo fread($file, 50000);
    }
    fclose($file);
    exit;
} else {
    echo '文件不存在!';
}
?>
评论0
头像

系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 1915635791

1 2