Example #1
0
 /**
  * 移动文件
  * 非合法上传文件和因其它未知原因造成的无法移动会抛出异常
  * @param FileInfo $file
  * @return boolean
  * @throws UploadException
  */
 protected function moveUploadFile(FileInfo $file)
 {
     $tmpName = $file->getTmpName();
     $dest = $this->generateFilename($file);
     if (is_uploaded_file($tmpName)) {
         if (!file_exists($dest) || $this->override) {
             if (!@move_uploaded_file($tmpName, $dest)) {
                 throw new UploadException('Failed to move file');
             }
             $file->setPath($dest);
             $file->hasError = false;
             return true;
         } else {
             $file->setErrorCode(ErrorStore::ERROR_SAME_NAME_FILE);
             $file->setErrorMsg(sprintf('File "%s" already exists', $file->getOriginName()));
             return false;
         }
     }
     throw new UploadException('Upload file is not valid');
 }