echo '<div class="message">' . NL;
         echo '<p>' . t('Deleted links') . ' : ' . $count . '</p></div>';
     }
+    elseif (strcmp ($_POST['action'], 'download') == 0)
+    {
+        $l = jirafeau_get_link ($_POST['link']);
+        if (!count ($l))
+            return;
+        $p = s2p ($l['md5']);
+        header ('Content-Length: ' . $l['file_size']);
+        header ('Content-Type: ' . $l['mime_type']);
+        header ('Content-Disposition: attachment; filename="' .
+                $l['file_name'] . '"');
+        if (file_exists(VAR_FILES . $p . $l['md5']))
+            readfile (VAR_FILES . $p . $l['md5']);
+    }
 }
 
 require (JIRAFEAU_ROOT.'lib/template/footer.php');
 
                     continue;
                 /* Print link informations. */
                 echo '<tr>';
-                echo '<td>' . $l['file_name'] . '</td>';
+                echo '<td>' .
+                '<form action = "admin.php" method = "post">' .
+                '<input type = "hidden" name = "action" value = "download"/>' .
+                '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
+                '<input type = "submit" value = "' . $l['file_name'] . '" />' .
+                '</form>';
+                echo '</td>';
                 echo '<td>' . $l['mime_type'] . '</td>';
                 echo '<td>' . jirafeau_human_size ($l['file_size']) . '</td>';
                 echo '<td>' . ($l['time'] == -1 ? '' : strftime ('%c', $l['time'])) .