Загрузка одного файла из базы данных - PullRequest
0 голосов
/ 19 апреля 2019

Я работаю над сайтом, где люди могут загружать и скачивать файлы. У меня загрузка работает так, как я хочу, и загрузка в папку тоже работает. Единственная проблема, с которой я столкнулся, - это найти способ загрузить один файл, а не все. Приведенный ниже код предназначен для загрузки с Сервера / базы данных.

// Downloads files
if (isset($_GET['file_id'])) {
$id = $_GET['file_id'];

// fetch file to download from database
$sql = "SELECT * FROM files WHERE id= $id";
$result = mysqli_query($conn, $sql);

$file = mysqli_fetch_assoc($result);
$filepath = 'uploads/' . $file['name'];

   if (file_exists($filepath)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' .      basename($filepath));
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize('uploads/' . $file['name']));
    readfile('uploads/' . $file['name']);

    // Now update downloads count
    $newCount = $file['downloads'] + 1;
    $updateQuery = "UPDATE files SET downloads=$newCount WHERE id=$id";
    mysqli_query($conn, $updateQuery);
    exit;
}

}

Приведенный ниже код является кодом для сайта PHP / HTML, где отображаются все файлы, и позволяет пользователю загружать файлы. Я только хочу перечислить один файл и иметь возможность поставить ссылку на любой файл, не все из них. Я могу получить один файл для загрузки, если я заменю $ sql = "SELECT * FROM files WHERE id = $ id" на число, подобное 7, или на любой номер идентификатора, но он по-прежнему отображает все остальные файлы, но все равно только загружает файл для ID 7 на каждой ссылке.

<thead>
<th>ID</th>
<th>Filename</th>
<th>size (in mb)</th>
<th>Downloads</th>
<th>Action</th>

   <tr>
      <td><?php echo $file['id']; ?></td>
      <td><?php echo $file['name']; ?></td>
      <td><?php echo floor($file['size'] / 1000) . ' KB'; ?></td>
      <td><?php echo $file['downloads']; ?></td>
      <td><a href="downloads.php?file_id=<?php echo $file[$id]?    >">Download</a>       </td>
</tr>

Если бы кто-то мог сообщить мне, что мне не хватает, я был бы очень благодарен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...