Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

tidy_plupload.php

Zuletzt modifiziert: 09.10.2024, 12:55 - Dateigröße: 2.32 KiB


 001  <?php
 002  /**
 003  *
 004  * This file is part of the phpBB Forum Software package.
 005  *
 006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
 007  * @license GNU General Public License, version 2 (GPL-2.0)
 008  *
 009  * For full copyright and license information, please see
 010  * the docs/CREDITS.txt file.
 011  *
 012  */
 013   
 014  namespace phpbb\cron\task\core;
 015   
 016  /**
 017  * Cron task for cleaning plupload's temporary upload directory.
 018  */
 019  class tidy_plupload extends \phpbb\cron\task\base
 020  {
 021      /**
 022      * How old a file must be (in seconds) before it is deleted.
 023      * @var int
 024      */
 025      protected $max_file_age = 86400;
 026   
 027      /**
 028      * How often we run the cron (in seconds).
 029      * @var int
 030      */
 031      protected $cron_frequency = 86400;
 032   
 033      /**
 034      * phpBB root path
 035      * @var string
 036      */
 037      protected $phpbb_root_path;
 038   
 039      /**
 040      * Config object
 041      * @var \phpbb\config\config
 042      */
 043      protected $config;
 044   
 045      /**
 046      * Directory where plupload stores temporary files.
 047      * @var string
 048      */
 049      protected $plupload_upload_path;
 050   
 051      /**
 052      * Constructor.
 053      *
 054      * @param string $phpbb_root_path The root path
 055      * @param \phpbb\config\config $config The config
 056      */
 057      public function __construct($phpbb_root_path, \phpbb\config\config $config)
 058      {
 059          $this->phpbb_root_path = $phpbb_root_path;
 060          $this->config = $config;
 061   
 062          $this->plupload_upload_path = $this->phpbb_root_path . $this->config['upload_path'] . '/plupload';
 063      }
 064   
 065      /**
 066      * {@inheritDoc}
 067      */
 068      public function run()
 069      {
 070          // Remove old temporary file (perhaps failed uploads?)
 071          $last_valid_timestamp = time() - $this->max_file_age;
 072          try
 073          {
 074              $iterator = new \DirectoryIterator($this->plupload_upload_path);
 075              foreach ($iterator as $file)
 076              {
 077                  if (strpos($file->getBasename(), $this->config['plupload_salt']) !== 0)
 078                  {
 079                      // Skip over any non-plupload files.
 080                      continue;
 081                  }
 082   
 083                  if ($file->getMTime() < $last_valid_timestamp)
 084                  {
 085                      @unlink($file->getPathname());
 086                  }
 087              }
 088          }
 089          catch (\UnexpectedValueException $e)
 090          {
 091              add_log(
 092                  'critical',
 093                  'LOG_PLUPLOAD_TIDY_FAILED',
 094                  $this->plupload_upload_path,
 095                  $e->getMessage(),
 096                  $e->getTraceAsString()
 097              );
 098          }
 099   
 100          $this->config->set('plupload_last_gc', time(), true);
 101      }
 102   
 103      /**
 104      * {@inheritDoc}
 105      */
 106      public function is_runnable()
 107      {
 108          return !empty($this->config['plupload_salt']) && is_dir($this->plupload_upload_path);
 109      }
 110   
 111      /**
 112      * {@inheritDoc}
 113      */
 114      public function should_run()
 115      {
 116          return $this->config['plupload_last_gc'] < time() - $this->cron_frequency;
 117      }
 118  }
 119