tempName); $existing = Image::find()->where([ 'sha256' => $hash ])->one(); if ($existing) { return $existing; } copy($file->tempName, env('UPLOADS_PATH') . '/' . $hash); $new = new Image([ 'sha256' => $hash, 'original_name' => $file->name, 'mime' => FileHelper::getMimeType($file->tempName) ]); $new->save(true); return $new; } /** * {@inheritdoc} */ public function rules() { return [ [['sha256', 'original_name'], 'required'], [['sha256', 'original_name'], 'string', 'max' => 255], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'sha256' => 'Sha256', 'original_name' => 'Original Name', ]; } }