コード例 #1
0
ファイル: File.php プロジェクト: efueger/luya
 public function create($sourceFile, $newFileName, $hidden = false, $folderId = 0)
 {
     if (empty($sourceFile) || empty($newFileName)) {
         return !$this->setError('empty source file or create file param. Invalid file uploaded!');
     }
     $copyFile = false;
     $fileInfo = $this->getFileInfo($newFileName);
     $baseName = Inflector::slug($fileInfo->name, '-');
     $fileHashName = $this->getNameHash($newFileName);
     $fileHash = $this->getFileHash($sourceFile);
     $mimeType = $this->getMimeType($sourceFile);
     $fileName = implode([$baseName . '_' . $fileHashName, $fileInfo->extension], '.');
     $savePath = \yii::$app->storage->dir . $fileName;
     if (is_uploaded_file($sourceFile)) {
         if (move_uploaded_file($sourceFile, $savePath)) {
             $copyFile = true;
         } else {
             $this->setError("error while moving uploaded file from {$sourceFile} to {$savePath}");
         }
     } else {
         if (copy($sourceFile, $savePath)) {
             $copyFile = true;
         } else {
             $this->setError("error while copy file from {$sourceFile} to {$savePath}.");
         }
     }
     if ($copyFile) {
         $model = new StorageFile();
         $model->setAttributes(['name_original' => $newFileName, 'name_new' => $baseName, 'name_new_compound' => $fileName, 'mime_type' => $mimeType, 'extension' => strtolower($fileInfo->extension), 'folder_id' => (int) $folderId, 'hash_file' => $fileHash, 'hash_name' => $fileHashName, 'is_hidden' => $hidden, 'file_size' => @filesize($savePath)]);
         if ($model->validate()) {
             if ($model->save()) {
                 return $model->id;
             }
         }
     }
     return false;
 }
コード例 #2
0
ファイル: StorageContainer.php プロジェクト: boehsermoe/luya
 /**
  * @todo its a copy from the old colde, refactor code
  * @param string $fileSource
  * @param string $fileName
  * @param int $folderId
  */
 public function addFile($fileSource, $fileName, $folderId = 0, $isHidden = false)
 {
     if (empty($fileSource) || empty($fileName)) {
         throw new Exception("Unable to create file where file source and/or file name is empty.");
     }
     $fileInfo = FileHelper::getFileInfo($fileName);
     $baseName = Inflector::slug($fileInfo->name, '-');
     $fileHashName = Storage::createFileHash($fileName);
     $fileHash = FileHelper::getFileHash($fileSource);
     $mimeType = FileHelper::getMimeType($fileSource);
     $newName = implode([$baseName . '_' . $fileHashName, $fileInfo->extension], '.');
     $savePath = $this->serverPath . '/' . $newName;
     if (is_uploaded_file($fileSource)) {
         if (!@move_uploaded_file($fileSource, $savePath)) {
             throw new Exception("error while moving uploaded file from {$fileSource} to {$savePath}");
         }
     } else {
         if (!@copy($fileSource, $savePath)) {
             throw new Exception("error while copy file from {$fileSource} to {$savePath}.");
         }
     }
     $model = new StorageFile();
     $model->setAttributes(['name_original' => $fileName, 'name_new' => $baseName, 'name_new_compound' => $newName, 'mime_type' => $mimeType, 'extension' => strtolower($fileInfo->extension), 'folder_id' => (int) $folderId, 'hash_file' => $fileHash, 'hash_name' => $fileHashName, 'is_hidden' => $isHidden ? 1 : 0, 'file_size' => @filesize($savePath)]);
     if ($model->validate()) {
         if ($model->save()) {
             $this->deleteHasCache($this->fileCacheKey);
             $this->_filesArray[$model->id] = $model->toArray();
             return $this->getFile($model->id);
         }
     }
     return false;
 }