Mysql
 sql >> база данни >  >> RDS >> Mysql

как да изтеглите базиран на blob файл от MySQL база данни в PHP?

Това е най-често срещаният проблем, с който се сблъсквате при работа с blob файла. От вашия пример виждам, че запазвате "fileType" като разширения на файловете (т.е. "jpg" за изображения, "pdf" за pdf файлове и т.н.), които качвате. Но вместо това можете да запазите типа на файла като MIME тип съдържание.

Да предположим, че ако качите jpeg изображение - типът MIME ще бъде съхранен в "fileType" като "image/jpeg". По същия начин за pdf той ще се съхранява като "application/pdf". Проектирах код като този, за да изтегля blob файла от базата данни. Предполагам, че файловете вече са качени в таблицата на базата данни, която сте създали.

Таблица на базата данни „качвания“

| ИД на файл | Име на файл | Тип файл | размер на файла |файлови данни | потребителски идентификатор |

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 тук .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-добри практики за меко изтриване (PHP/MySQL)

  2. Създайте бази данни с liquibase на празен екземпляр на mysql

  3. Как да мигрирам база данни на SQL Server към MySQL?

  4. Laravel 5.3:Синтактична грешка или нарушение на достъпа:1463 Негрупиращо поле 'distance' се използва в клауза HAVING

  5. MySQL се присъединява с клауза where