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) { } 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) { } else { } } $db->close();
Plik dodaje się do bazy , jest jego pojemność pole file jest typu BLOB. Teraz pobieranie danych
if(!$db) { } 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
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