public function test_valid_id_removeMissingFile()
 {
     $this->model->shouldReceive("file_exists")->with("/invalid/path/file-1")->once()->andReturn(false);
     $this->model->shouldReceive("delete_data_id")->with("file-hash-1-1")->once();
     $ret = \service\files::valid_id($this->filedata, $this->config, $this->model, 505);
     $this->t->is($ret, false, "missing file should be removed");
 }
示例#2
0
文件: file.php 项目: Anon215/filebin
 function cron()
 {
     if (!$this->input->is_cli_request()) {
         return;
     }
     $tarball_dir = $this->config->item("upload_path") . "/special/multipaste-tarballs";
     if (is_dir($tarball_dir)) {
         $tarball_cache_time = $this->config->item("tarball_cache_time");
         $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($tarball_dir), RecursiveIteratorIterator::SELF_FIRST);
         foreach ($it as $file) {
             if ($file->isFile()) {
                 if ($file->getMTime() < time() - $tarball_cache_time) {
                     $lock = fopen($file, "r+");
                     flock($lock, LOCK_EX);
                     unlink($file);
                     flock($lock, LOCK_UN);
                 }
             }
         }
     }
     $oldest_time = time() - $this->config->item('upload_max_age');
     $oldest_session_time = time() - $this->config->item("sess_expiration");
     $config = array("upload_max_age" => $this->config->item("upload_max_age"), "small_upload_size" => $this->config->item("small_upload_size"), "sess_expiration" => $this->config->item("sess_expiration"));
     $query = $this->db->select('file_storage_id storage_id, id, user, date')->from('files')->where("user", 0)->where("date <", $oldest_session_time)->get()->result_array();
     foreach ($query as $row) {
         $row['data_id'] = $row['hash'] . '-' . $row['storage_id'];
         \service\files::valid_id($row, $config, $this->mfile, time());
     }
     // 0 age disables age checks
     if ($this->config->item('upload_max_age') == 0) {
         return;
     }
     $query = $this->db->select('hash, files.id, user, files.date, file_storage.id storage_id')->from('files')->join('file_storage', "file_storage.id = files.file_storage_id")->where('files.date <', $oldest_time)->get()->result_array();
     foreach ($query as $row) {
         $row['data_id'] = $row['hash'] . '-' . $row['storage_id'];
         \service\files::valid_id($row, $config, $this->mfile, time());
     }
 }
示例#3
0
文件: mfile.php 项目: Anon215/filebin
 public function valid_filedata($filedata)
 {
     return \service\files::valid_id($filedata, $this->id_validation_config, $this, time());
 }