Sono riuscito a fare il download ed il delete del file dal disco ma non sono riuscito a fare la cosa più semplice: il download.

L'errore è qui:

Codice PHP:
if (isset($_GET['action']) and ( $_GET['action'] == 'view' or $_GET['action'] == 'download') and
        isset(
$_GET['id'])) {
    include 
'db.inc.php';

    try {
        
$sql 'SELECT filename, mimetype, url
        FROM filestore
        WHERE id = :id'
;
        
$s $pdo->prepare($sql);
        
$s->bindValue(':id'$_GET['id']);
        
$s->execute();
    } catch (
PDOException $e) {
        
$error 'Database error fetching requested file.';
        include 
$_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
        exit();
    }

    
$file $s->fetch();
    if (!
$file) {
        
$error 'File with specified ID not found in the database!';
        include 
$_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
        exit();
    }

    
$filename $file['filename'];
    
$mimetype $file['mimetype'];
    
$url $file['url'];
    
$disposition 'inline';

    if (
$_GET['action'] == 'download') {
        
$mimetype 'application/octet-stream';
        
$disposition 'attachment';
    }

    
// Content-type must come before Content-disposition
    
header('Content-length: ' strlen($url));
    
header("Content-type: $mimetype");
    
header("Content-disposition: $disposition; filename=$filename");
    
header("Location: $url");
    echo 
$url;
    exit();

in pratica lo script mi salva un file senza estensione con l'url del file invece che il file. A mio avviso l'errore è qui:

Codice PHP:
    header('Content-length: ' strlen($url));
    
header("Content-type: $mimetype");
    
header("Content-disposition: $disposition; filename=$filename");
    
header("Location: $url");
    echo 
$url;
    exit(); 
però non so come correggere...