Uno script semplice per forzare il download di un file con PHP
Con questo script sarà possibile forzare il download di un file con PHP, si tratta di codice da personalizzare con la valorizzazione della variabile $path
e $name
. Il suo scopo è quello di predisporre (forzando) il download diretto di un file senza rendere però pubblico l’indirizzo assoluto del file.
I valori di path e name possono essere valorizzati da una lettura dal db, in relazione ad un ID che andremo a fornire in modalità GET.
<?php
$path = "indirizzo/del/file/";
$name = "nomedelfile.ext";
$size = filesize($path); //calcola dimensione del file
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Cache-Control: private');
header('Pragma: no-cache');
header("Content-Transfer-Encoding: binary");
header("Content-type: {$path['mime']}");
header("Content-length: {$size}");
header("Content-disposition: attachment; filename=\"{$name}\"");
readfile($path);
exit;
?>