Jest to najczęstszy problem napotykany podczas pracy z plikiem blob. Z twojego przykładu widzę, że zapisujesz „fileType” jako rozszerzenia plików (tj. „jpg” dla obrazów, „pdf” dla plików pdf itp.), które przesyłasz. Ale zamiast tego możesz zapisać typ pliku jako typ zawartości MIME.
Załóżmy, że przesyłasz obraz jpeg - typ MIME zostanie zapisany w "fileType" jako "image/jpeg". Podobnie dla pdf będzie on przechowywany jako "aplikacja/pdf". Zaprojektowałem taki kod, aby pobrać plik blob z bazy danych. Zakładam, że pliki są już przesłane do utworzonej przez Ciebie tabeli bazy danych.
Przesyłanie tabeli bazy danych
| identyfikator pliku | nazwa_pliku | typ pliku | fileSize |fileData | ID użytkownika |
pobierz.php
<?php
$connection = mysqli_connect("localhost","root"," ",your_database)
or die('Database Connection Failed');
mysqli_set_charset($connection,'utf-8');
$id = 1;
// Use a prepared statement in production to avoid SQL injection;
// we can get away with this here because we're the only ones who
// are going to use this script.
$query = "SELECT * " ."FROM uploads WHERE userID = '$id'";
$result = mysqli_query($connection,$query)
or die('Error, query failed');
list($id, $file, $type, $size,$content) = mysqli_fetch_array($result);
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$file");
ob_clean();
flush();
echo $content;
mysqli_close($connection);
exit;
?>
Pełny kod blob-upload można znaleźć tutaj .