Я создаю страницу PHP, которая позволяет пользователям загружать файлы, когда они нажимают на эту кнопку:
<td><a href='download.php?id={$row['file_name']}'>Download</a></td>
, затем страница перенаправляется на download.php, код:
<code><?php
// Make sure an ID was passed
if(isset($_GET['file_name'])) {
// Get the ID$id
$file_name= ($_GET['file_name']);
// Make sure the ID is in fact a valid ID
if($file_name == NULL) {
die('The name is invalid!');
}
else {
// Connect to the database
$dbLink = new mysqli('localhost', 'root', "", 'db_name');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ".mysqli_connect_error());
}
// Fetch the file information
$query = "
SELECT `type`, `file_name`, `size`, `data`
FROM `pdfs`
WHERE `file_name` = {$file_name}";
$result = $dbLink->query($query);
if($result) {
// Make sure the result is valid
if($result->num_rows == 1) {
// Get the row
$row = mysqli_fetch_assoc($result);
header("Content-Type: ".$row['type']);
header("Content-Length: ".$row['size']);
header("Content-Disposition: attachment");
// disopsition = attachment to force download request
// Print data
echo $row['data'];
}
else {
echo 'Error! No file exists with that ID.';
}
// Free the mysqli resources
@mysqli_free_result($result);
}
else {
// if there is an error excuting the query
echo "Error! Query failed: <pre>{$dbLink->error}
";}// закрыть соединение с базой данных @mysqli_close ($ dbLink);}} else {// если ID не передан echo 'Ошибка! ID не был передан.';}?>
однако, когда я нажмупри загрузке я всегда получаю массаж с последним оператором else «ошибка, идентификатор не был передан», но я не могу найти проблему, это проблема, которую я сделал, первичный ключ файла - имя ??