Witam,
Chciałbym dodawać pliki do bazy danych (wiem, że to nie tak się robi), ale na moje potrzeby to dobre rozwiązanie.
Wgrywam plik do bazy danych tak:
$file=$_FILES['ffile'];
$filename = $_FILES['ffile']['name'];
$filenametmp = $_FILES['ffile']['tmp_name'];
$filetype = $_FILES['ffile']['type'];
$filesize = $_FILES['ffile']['size'];
$mimetype = get_mime_type($filename);
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg(); } else {
$queryadd=$db->query("INSERT INTO hdf (id, category, dateadd, mimetype, file, filesize, stat) VALUES (NULL, '$category', DATETIME('now','localtime'), '$mimetype', '$filename', '$filesize', '0')");
if ($queryadd==FALSE) {
echo "Error in fetch ".$db->lastErrorMsg(); } else {
echo "<strong>Record added successfully<br /></strong>";
}
}
$db->close();
Plik dodaje się do bazy , jest jego pojemność pole file jest typu BLOB. Teraz pobieranie danych
if(!$db) {
echo $db->lastErrorMsg(); } else {
while ($row = $query->fetchArray(SQLITE3_ASSOC)) {
//header("Content-Type:" . $row['mimetype']);
echo $row['id']." ".$row['file']." <a download href=down.php?file=".$row['file']."&mime=".$row['mimetype']."> Download this file</a><br />"; //echo "<a download href=\"file/{$row['file']}\">Download this file</a>";
}
}
plink down.php wygląda tak
header("Content-Type: " . $mime); header("Content-Disposition: attachment; filename=\"" . $file . "\"");
Problem w tym, że jak kliknę pobież to przeglądarka pobiera plik, ale nie jestem w stanie go otworzyć, bo dostaję informację, że plik jest uszkodzony. Jak go wgrywam ma 1,8M, jak pobieram ma 188B więc coś nie tak.
Czy mogę prosić o pomoc, może źle go pobieram, no już sam nie wiem i się zaplątałem