Tremendamente interessante :-)
Non immagini nemmeno quanto mi hai aiutato. Sono un principiante totale e suggerendomi di fare echo mi hai messo in grado di fare un elementare debugging del mio script. Grazie del suggerimento!

Purtroppo però non ho ancora risolto. Ecco il mio codice attuale:

codice:
<?php
$url=$_GET['url'];
$filename=$_GET['filename'];
/*echo 'La variable $url contiene: <pre>'; 
var_dump($url);
echo 'La variable $filename contiene: <pre>'; 
var_dump($filename);
exit;*/
header('Content-disposition: attachment; filename='.$filename);
header('Content-type: application/octet-stream');
readfile($url);
?>
Mi dà lo stesso risultato (ho corretto altri errori, la query come era prima mi rimandava al thumbnail, ora ho deciso di semplificare e, anche se non è elegante, passo direttamente come parametro l'URL e il filename del file principale, così mi risparmio anche una seconda query.

Se scommento il pezzo echo/dump, mi trovo:

La variable $url contiene:

string(90) "albums/Converted/Book Covers/Agatha Christie/Secret_Adversary_First_Edition_Cover_1922.jpg"
La variable $filename contiene:

string(45) "Secret_Adversary_First_Edition_Cover_1922.jpg "
Che è perfettamente corretto!

Non so come mai non funzioni. Si ostina a darmi la pagina piena di simboletti invece di aprirmi la finestra di "Salva con nome"! :-(

Grazie ancora del grande aiuto!