Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como baixar arquivo baseado em blob do banco de dados MySQL em PHP?


Este é o problema mais comum enfrentado ao lidar com o arquivo blob. Do seu exemplo, posso ver que você está salvando "fileType" como as extensões dos arquivos (ou seja, 'jpg' para imagens, 'pdf' para arquivos pdf etc.), você está enviando. Mas, em vez disso, você pode salvar o tipo de arquivo como o tipo de conteúdo MIME.

Suponha que se você carregar uma imagem jpeg - o tipo MIME será armazenado no "fileType" como "image/jpeg". Da mesma forma, para pdf, ele será armazenado como "application/pdf". Eu projetei um código como este para baixar o arquivo blob do banco de dados. Vou assumir que os arquivos já foram carregados na tabela de banco de dados que você criou.

Envios de tabelas de banco de dados

| arquivoID | nomedoarquivo | tipo de arquivo | fileSize |fileData | ID do usuário |

baixar.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;

?>

Você pode encontrar o código completo do blob-upload aqui .