Bonjour,
Je stock des fichiers en base de cette façon :
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 :
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(); }
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 :
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
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>'; ?>
Merci d'avance !
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(); } ?>
Partager