]> git.p6c8.net - jirafeau.git/blobdiff - admin.php
Fix some bugs due to PHP's max_execution_time
[jirafeau.git] / admin.php
index bdd0267276b3a2ded6f8d7f13a6828fa75f9c6cb..2fd8d2920349050c2b36242b8df1130cc06eb51d 100755 (executable)
--- a/admin.php
+++ b/admin.php
@@ -107,6 +107,11 @@ elseif (!isset ($_SESSION['admin_auth']) || $_SESSION['admin_auth'] != true)
     exit;
 }
 
     exit;
 }
 
+/* Operations may take a long time.
+ * Be sure PHP's safe mode is off.
+ */
+ set_time_limit(0);
+
 /* Admin interface. */
 require (JIRAFEAU_ROOT . 'lib/template/header.php');
 ?><h2><?php echo t('Admin interface'); ?></h2><?php
 /* Admin interface. */
 require (JIRAFEAU_ROOT . 'lib/template/header.php');
 ?><h2><?php echo t('Admin interface'); ?></h2><?php
@@ -129,6 +134,18 @@ require (JIRAFEAU_ROOT . 'lib/template/header.php');
         </tr>
         </form>
         <form action = "<?php echo basename(__FILE__); ?>" method = "post">
         </tr>
         </form>
         <form action = "<?php echo basename(__FILE__); ?>" method = "post">
+        <tr>
+            <input type = "hidden" name = "action" value = "clean_async"/>
+            <td class = "info">
+                <?php echo t('Clean old unfinished transferts'); ?>
+            </td>
+            <td></td>
+            <td>
+                <input type = "submit" value = "<?php echo t('Clean'); ?>" />
+            </td>
+        </tr>
+        </form>
+        <form action = "<?php echo basename(__FILE__); ?>" method = "post">
         <tr>
             <input type = "hidden" name = "action" value = "list"/>
             <td class = "info">
         <tr>
             <input type = "hidden" name = "action" value = "list"/>
             <td class = "info">
@@ -201,6 +218,14 @@ if (isset ($_POST['action']))
         echo t('Number of cleaned files') . ' : ' . $total;
         echo '</p></div>';
     }
         echo t('Number of cleaned files') . ' : ' . $total;
         echo '</p></div>';
     }
+    elseif (strcmp ($_POST['action'], 'clean_async') == 0)
+    {
+        $total = jirafeau_admin_clean_async ();
+        echo '<div class="message">' . NL;
+        echo '<p>';
+        echo t('Number of cleaned files') . ' : ' . $total;
+        echo '</p></div>';
+    }
     elseif (strcmp ($_POST['action'], 'list') == 0)
     {
         jirafeau_admin_list ("", "", "");
     elseif (strcmp ($_POST['action'], 'list') == 0)
     {
         jirafeau_admin_list ("", "", "");
@@ -229,8 +254,21 @@ if (isset ($_POST['action']))
         echo '<div class="message">' . NL;
         echo '<p>' . t('Deleted links') . ' : ' . $count . '</p></div>';
     }
         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');
 
 }
 
 require (JIRAFEAU_ROOT.'lib/template/footer.php');
 
-?>
\ No newline at end of file
+?>

patrick-canterino.de