これは、blobファイルの処理中に直面する最も一般的な問題です。あなたの例から、ファイルの拡張子として「fileType」を保存していることがわかります(つまり、画像の場合は「jpg」、PDFファイルの場合は「pdf」など)。アップロードしています。ただし、その代わりに、ファイルタイプをMIMEコンテンツタイプとして保存できます。
jpeg画像をアップロードするとします-MIMEタイプは「fileType」に「image/jpeg」として保存されます。同様に、pdfの場合は「application/pdf」として保存されます。データベースからblobファイルをダウンロードするために、このようなコードを設計しました。作成したデータベーステーブルにファイルがすでにアップロードされていると仮定します。
データベーステーブルの「アップロード」
| fileID | fileName | fileType | fileSize | fileData | userID |
download.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;
?>
blob-uploadの完全なコードは