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