Я работаю на веб-сайте, где я хочу загрузить и загрузить данные с сервера. Загрузка работает нормально, но я не могу загрузить данные. У меня есть таблица с именем upload
с колонками: uplaod_name
, sub_name
, semester_id
, date
и file_content
. Вот форма, из которой я скачиваю данные:Как загрузить файл из базы данных MySQL
<?php
include_once("functions.php");
$query="SELECT * from uploads";
$rs = execute_query($query);
?>
<form action="s_downfinl.php" method="post" enctype="multipart/form-data">
<table border="groove" cellpadding="15px">
<tr>
<td>Subject Name</td>
<td>upload name</td>
<td>Download</td>
</tr>
<?php
while ($row = mysql_fetch_assoc($rs)){
echo "<tr><td>";
//echo "<pre>";
//print_r($row);
//echo "</pre>";
echo $row['sub_name']."</td><td>";
echo $row['upload_name']."</td>";
echo "<td><a href='s_downfinl.php?nama=". $row['file_content']."'>download</a></td>";
}
echo "</table>";
?>
</form>
и файл s_downfinl.php для загрузки файла:
<?php
include_once("functions.php");
$query = "SELECT * FROM uploads WHERE sub_name = $sub_name";
$name= $_POST['nama'];
download($name);
$rs = execute_query($query);
function download($name){
$file = $nama_fail;
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
}
?>
Я смущен, почему вы храните содержимое файла в БД, а не просто загружаете файл на сервер и сохраняете путь к файлу в БД. Не могли бы вы рассказать о том, что такое содержимое файла и какой конечный результат вы хотите? – danbahrami
Я работаю над учебным типом веб-сайта, где преподаватели будут загружать файлы, такие как лекции ppt, pdf и word docs, а учащиеся будут входить в систему и загружать их сами. его проект моего семестра фактически – motan
В этом случае я бы посоветовал вам просто загрузить файлы в какой-либо каталог на вашем сервере, и для каждой строки в вашей БД сохраните 'file_path' вместо' file_contents'. Затем вы можете просто предоставить ссылку для загрузки в путь к файлу. – danbahrami