pagina.php

Codice PHP:
$lista file('lista.txt'FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
$out   '';


foreach (
$lista as $file)
{
    
$out .= sprintf('[url="download.php?file=%s"]Salva il file %s[/url]
'
$file$file);    
}

echo 
$out
download.php

Codice PHP:
$dir __DIR__// sostituisci con il percorso dove si trovano le immagini

if (isset($_GET['file']))
{
    if (
file_exists($path $dir DIRECTORY_SEPARATOR $_GET['file']))
    {
        
header('Content-Description: File Transfer');
        
header('Content-Type: application/octet-stream');
        
header('Content-Disposition: attachment; filename='.basename($path));
        
header('Content-Transfer-Encoding: binary');
        
header('Expires: 0');
        
header('Cache-Control: must-revalidate');
        
header('Pragma: public');
        
header('Content-Length: ' filesize($path));
        
ob_clean();
        
flush();
        
readfile($path);
        exit;        
    }
    else 
    {
        echo 
'Il file non esiste';
    }
}
else
{
    echo 
'Manca il parametro "file" nella query';

E' solo una bozza, parti da questa e adattala/migliorala secondo le tue esigenze