Chinaunix首页 | 论坛 | 博客
  • 博客访问: 289265
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 88
  • 用 户 组: 普通用户
  • 注册时间: 2017-12-01 10:33
文章分类

全部博文(15)

文章存档

2019年(12)

2018年(2)

2017年(1)

我的朋友

分类: PHP

2019-10-22 09:32:19

PHP+Mysql统计文件下载次数实例,实现的原理也很简单,是通过前台点击链接download.php传参id,来更新点击次数。



获取文件列表:
  1. <?php
  2. require 'conn.php';
  3.  
  4. $query = mysql_query("SELECT * FROM downloads");
  5. $lists = array();
  6. while ($row = mysql_fetch_assoc($query)) {
  7.     $lists[] = $row;
  8. }
  9. ?>

读取文件列表,并加上download.php链接和参数id:
  1. <ul class="filelist">
  2.     <?php foreach ($lists as $v) { ?>
  3.         <li><a href="download.php?id="><?php echo $v['filename'] ?><span class="downcount" title="下载次数"><?php echo $v['downloads'] ?></span><span class="download">点击下载</span></a></li>
  4.                 <?php } ?>
  5. </ul>

点击下载按钮,累加文件次数:
  1. $(function() {
  2.         $('ul.filelist a').live('click', function() {
  3.             var count = $('.downcount', this);
  4.             count.text(parseInt(count.text()) + 1);
  5.         });
  6. });

download.php文件源码:
  1. <?php
  2. $id = (int) $_GET['id'];
  3.  
  4. if (!isset($id) || $id == 0)
  5.     die('参数错误!');
  6. $query = mysql_query("select * from downloads where id='$id'");
  7. $row = mysql_fetch_array($query);
  8. if (!$row)
  9.     exit;
  10. $filename = iconv('UTF-8', 'GBK', $row['filename']); //中文名称注意转换编码
  11. $savename = $row['savename']; //实际在服务器上的保存名称
  12. $myfile = 'files/' . $savename; //文件
  13.  
  14. if (file_exists($myfile)) {
  15.     mysql_query("update downloads set downloads=downloads+1 where id='$id'");
  16.     $file = @ fopen($myfile, "r");
  17.     header("Content-type: application/octet-stream");
  18.     header("Content-Disposition: attachment; filename=" . $filename);
  19.     while (!feof($file)) {
  20.         echo fread($file, 50000);
  21.     }
  22.     fclose($file);
  23.     exit;
  24. } else {
  25.     echo '文件不存在!';
  26. }
  27. ?>

本文转自: 转载请注明出处!
阅读(1471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~