コード例 #1
0
ファイル: Handler.php プロジェクト: aleksabp/bolt
 /**
  * Processes a single uploaded file
  * - sanitize the name
  * - validates the file
  * - if valid, moves the file to the container
  *
  * @param  array $file
  * @return array
  */
 protected function processSingleFile(array $file)
 {
     // store it for future reference
     $file['original_name'] = $file['name'];
     // sanitize the file name
     $file['name'] = $this->sanitizeFileName($file['name']);
     $file = $this->validateFile($file);
     // if there are messages the file is not valid
     if (isset($file['messages']) && $file['messages']) {
         return $file;
     }
     // add the prefix
     $prefix = '';
     if (is_callable($this->prefix)) {
         $prefix = (string) call_user_func($this->prefix, $file['name']);
     } elseif (is_string($this->prefix)) {
         $prefix = (string) $this->prefix;
     }
     // if overwrite is not allowed, check if the file is already in the container
     if (!$this->overwrite) {
         if ($this->container->has($prefix . $file['name'])) {
             // add the timestamp to ensure the file is unique
             // method is not bulletproof but it's pretty safe
             $file['name'] = time() . '_' . $file['name'];
         }
     }
     // attempt to move the uploaded file into the container
     if (!$this->container->moveUploadedFile($file['tmp_name'], $prefix . $file['name'])) {
         $file['name'] = false;
         return $file;
     }
     $file['name'] = $prefix . $file['name'];
     // create the lock file if autoconfirm is disabled
     if (!$this->autoconfirm) {
         $this->container->save($file['name'] . '.lock', time());
     }
     return $file;
 }
コード例 #2
0
ファイル: File.php プロジェクト: aleksabp/bolt
 /**
  * Remove the .lock file attached to the file that was saved during process()
  * This should happen if the form fails validation/processing
  */
 public function confirm()
 {
     $this->container->delete($this->name . '.lock');
 }