Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak pobrać plik oparty na blob z bazy danych MySQL w PHP?

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obsługa błędów procedury składowanej MySQL

  2. Wysyłanie kodu HTML przez JSON

  3. Czy istnieje możliwość ANY_VALUE dla mysql 5.6?

  4. Jak wybrać wpisy z tej relacji?

  5. Wszystkie wartości ='s' w tabeli w błędzie PHP