Skip to content

Instantly share code, notes, and snippets.

@alvaroveliz
Created July 30, 2014 15:22
Show Gist options
  • Save alvaroveliz/34ff1d09cc3373e266db to your computer and use it in GitHub Desktop.
Save alvaroveliz/34ff1d09cc3373e266db to your computer and use it in GitHub Desktop.
Buscar archivo en DB y forzar descarga
<?php
/**
Ejemplo codigo para descarga de archivos.
Uso : <a href="descarga.php?id=5">...</a>
Buscará en DB el archivo en la DB y luego enviará la descarga
**/
/* Configuración DB */
$dbname = 'nombre_de_base_de_datos';
$user = 'user_base_de_datos';
$pass = 'pass_base_de_datos';
/* Conectando */
$dsn = 'msyql:host=localhost;port:3306;dbname='.$dbname;
$dbh = new PDO($dsn, $user, $pass);
/* Asumiendo que la tabla se llama archivos, se prepara la query. Los "?" se reemplazarán posteriormente */
$query = 'SELECT * FROM archivos WHERE id = ?';
$sth = $dbh->prepare($query);
/* Se ejecuta la query, enviando como primer parámetro 'id' */
$id = $_GET['id'];
$sth->execute(array($id));
/* Se obtiene el resultado */
$archivo = $sth->fetchAll();
/* Asumiendo que el resultado contiene id y path del archivo se procede a enviar el archivo para descarga */
$archivo = '/directorio/fisico/exacto/'. $archivo;
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($archivo) . "\"");
readfile($archivo);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment