Mysql
 sql >> Database >  >> RDS >> Mysql

come scaricare file basati su BLOB dal database MySQL in PHP?

Questo è il problema più comune affrontato durante la gestione del file BLOB. Dal tuo esempio, posso vedere che stai salvando "fileType" come estensioni dei file (cioè "jpg" per le immagini, "pdf" per i file pdf ecc.), stai caricando. Ma invece puoi salvare il tipo di file come tipo di contenuto MIME.

Supponiamo di caricare un'immagine jpeg - il tipo MIME verrà archiviato in "fileType" come "image/jpeg". Allo stesso modo per il pdf verrà archiviato come "applicazione/pdf". Ho progettato un codice come questo per scaricare il file BLOB dal database. Presumo che i file siano già stati caricati nella tabella del database che hai creato.

Caricamenti tabella database

| IDfile | nomefile | tipo di file | FileSize |fileDati | ID utente |

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;

?>

Puoi trovare il codice completo di blob-upload qui .