Bonjour,
Je stock des fichiers en base de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
        if(isset($_POST['stock_Name_2']) == null) {
            $req = $bdd->prepare('INSERT INTO employe (date_1, date_2, name_file, type_file, data_file) VALUES ( ?,?,?, ?, ?)');
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $req->bindParam(1, $date_1, PDO::PARAM_STR);
            $req->bindParam(2, $date_2, PDO::PARAM_STR);
            $req->bindParam(3, $file['name'], PDO::PARAM_STR);
            $req->bindParam(4, $file['type'], PDO::PARAM_STR);
            $req->bindParam(5, file_get_contents($file['tmp_name']), PDO::PARAM_LOB);
            $req->execute();
  }
Dans un autre fichier PHP j'affiche les 10 premiers fichiers que contient la base de donnée, et j'associe un bouton "Télécharger" avec :
Nom : Sans titre 1sdqsddds.png
Affichages : 1414
Taille : 5,9 Ko

Maintenant je sais pas trop comment mis prendre pour télécharger ce fichier...
J'ai créer une function downloadFile, mais je ne sais pas si elle est efficace ou pas.
Voici mon code pour les boutons :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
require ('download_file.php');
 
 
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=projet_licence;charset=utf8', 'root', '');
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
 
$answer =  $bdd->query('SELECT  date_1, date_2, name_file, data_file, tmp_name FROM employe LIMIT 0, 10');
echo '<p> Voici les fihciers avec les périodes associés que contient la base de données : </p>';
 
while ($donnees = $answer->fetch())
    echo '</br>' . $donnees['date_1'] . ' au ' . $donnees['date_2'] . ' Fichier =  ' . $donnees['name_file'] . '  ' . '<form method="post" action="<?php downloadfile($donnees[\'name_file\'], $donnees[\'tmp_name\'], $donnees[\'size\']) ?>"><input type=\'submit\' value=\'Télécharger\' id=\'dowloadFile\'/></form>';
 
?>
Le code pour la fonction dowloadFile (celui que j'insère en action pour les boutons) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? PHP 
function downloadfile($name, $tmp_name, $size)
{
    header('Content-Type: application/octet-stream');
    header('Content-Length: '. $size);
    header('Content-disposition: attachment; filename='. $name);
    header('Pragma: no-cache');
    header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
    header('Expires: 0');
    readfile($tmp_name);
    exit();
}
 
?>
Merci d'avance !