Я создаю страницу, где пользователи могут загружать / скачивать pdf файлы, которые хранятся в базе данных mysql, проблема в том, что когда я скачиваю файл, он становится поврежденным / поврежденным
NP: данные сохраненного файлакак блоб в базе данных.
Ниже приведен мой код:
<code> // Gather all required data
$name = $dbLink->real_escape_string($_FILES['uploaded_file']['name']);
$mime = $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
$data = $dbLink->real_escape_string(file_get_contents($_FILES ['uploaded_file']['tmp_name']));
$size = intval($_FILES['uploaded_file']['size']);
// Create the SQL query
$query = "
INSERT INTO `file` (
`name`, `mime`, `size`, `data`, `created`
)
VALUES (
'{$name}', '{$mime}', {$size}, '{$data}', NOW()
)";
// Execute the query
$result = $dbLink->query($query);
// Check if it was successfull
if($result) {
echo 'Success! Your file was successfully added!';
}
else {
echo 'Error! Failed to insert the file'
. "<pre>{$dbLink->error}
";}} else {echo 'Ошибка при загрузке файла.'. 'Код ошибки: '. Intval ($ _ FILES [' uploaded_file '] [' error ']);} // Закрыть соединение mysql $ dbLink-> close ();} else {echo' Ошибка! Файл не был отправлен! ';} скачать код: // Получить информацию о файле $ query = "SELECT` mime`, `name`,` size`, `data` FROM` file` WHERE `id` = {$ id}"; $ result = $dbLink-> query ($ query); if ($ result) {// Убедитесь, что результат верен, если ($ result-> num_rows == 1) {// Получить строку $ row = mysqli_fetch_assoc ($ result); // Печать заголовков // header ('Content-Type: application / pdf'); header ("Content-Type: application / force-download"); header ("Pragma: public"); header ("Content-Description: File"Transfer "); заголовок("Content-Type:". $ Row ['mime']);заголовок ("Content-Length:". $ row ['size']);заголовок ("Content-Disposition: attachment; filename =". $ row ['name']);заголовок («Content-Transfer-Encoding: двоичный»);заголовок («Cache-Control: must-revalidate, post-check = 0, pre-check = 0»);// Печать данных @readfile ($ row ['data']);} else {echo 'Ошибка!Файл с таким идентификатором не существует. ';} // Освободить ресурсы mysqli @mysqli_free_result ($ result);} else {echo "Ошибка! Запрос не выполнен:
{$dbLink->error}
";} @mysqli_close ($ dbLink);}} else {echo 'Ошибка!ID не был передан. ';}