首页 > 解决方案 > 如何使用 php mysqli 创建下载文件计数

问题描述

我的数据库中有我的文件的文件名,这些文件是 mp3 歌曲,我需要帮助来生成一个 php mysql 代码,它可以帮助我计算每个文件的下载次数。谢谢你。

if(isset($_GET['id'])){}
$songid = $_GET['id'];
$sql = 'SELECT filename, album_art, song, song_id, artist FROM homemp3 WHERE song_id ='.$songid;
$result = $conn->query($sql);
$row = mysqli_fetch_array($result);

            <img src="./images/<?= $mainImage; ?>" alt="PowerBeatz" width="300" height="300" />
            <div class="media-body">
                <h5 class="mt-0"><span class="title"><?php echo $row['song']; ?></span></h5>
                 <?php echo $row['artist']; ?>
                <div class="play">
                    <a href="./homemp3/<?= $row['filename']; ?>" class="btn btn-primary"><i class="fa fa-download"></i></a>
                </div>
                <div>
                <p>Total Downloads:</p>
                </div>

标签: phphtmlmysqlidownload

解决方案


我建议在表格上放置一个下载计数器,每次用户单击链接下载 mp3 时,然后使用 counter+=1 更新记录。然后您可以根据该列的值显示每个 mp3 的计数器。

我将创建一个 download.php 页面并传递文件名或更好的文件名和文件 ID。然后当用户点击链接下载文件,然后更新记录计数器,然后设置标题强制下载文件。例如。

在下载文件...

按名称或ID查找记录,更新计数器,然后强制下载...

$mp3 ='path_to/mp3_file.mp3';
if(file_exists($mp3)) {
  header('Content-Type: audio/mpeg');
  header('Content-Disposition: attachment; filename="mp3_file.mp3"');
  header('Content-length: '. filesize($mp3));
  header('Cache-Control: no-cache');
  header('Content-Transfer-Encoding: chunked'); 
  readfile($mp3);
  exit;
}

推荐阅读