public function actionUploadImage() { $fileTag = 'upload'; $user = Rays::user(); if (isset($_FILES[$fileTag])) { $path = Rays::app()->getBaseDir() . "/files/userfiles/u_" . $user->id . "/"; if (!file_exists($path)) { mkdir($path); } $file = $path . $_FILES[$fileTag]['name']; $name = $_FILES[$fileTag]['name']; $extension = RUpload::get_extension($_FILES[$fileTag]['name']); if (file_exists($file)) { $count = 0; while (true) { $_name = RUpload::get_name($name) . '_' . $count . $extension; $_file = $path . $_name; if (!file_exists($_file)) { $name = $_name; break; } $count++; } } $upload = new RUpload(array("file_name" => $name, "upload_path" => $path)); $upload->upload($fileTag); if ($upload->error != '') { echo $upload->error; //$this->flash("error", $upload->error); } else { // success $uri = "files/userfiles/u_" . $user->id . "/" . $upload->file_name; echo $uri; } } exit; }
/** * Change user info action * @param null $userId */ public function actionEdit($userId = null) { $userId = null === $userId ? Rays::user()->id : $userId; $user = User::get($userId); RAssert::not_null($user); if (Rays::user()->roleId != Role::ADMINISTRATOR_ID && Rays::user()->id != $userId) { $this->flash("error", "You don't have the right to change the user information!"); $this->redirectAction('user', 'view', $userId); } $data = array('user' => $user); if (Rays::isPost()) { $config = array(array('field' => 'username', 'label' => 'User name', 'rules' => 'trim|required|min_length[5]|max_length[20]')); // if set password, then go changing password if (isset($_POST['password']) && $_POST['password'] != '') { array_push($config, array('field' => 'password', 'label' => 'New Password', 'rules' => 'trim|required|min_length[6]|max_length[20]')); array_push($config, array('field' => 'password-confirm', 'label' => 'New Password Confirm', 'rules' => 'trim|required|min_length[6]|max_length[20]|equals[password]')); } $validation = new RValidation($config); if ($validation->run()) { if (isset($_POST['password']) && $_POST['password'] != '') { // set new password $user->password = md5($_POST['password']); } $user->name = $_POST['username']; foreach (User::$mapping as $objCol => $dbCol) { if (in_array($objCol, ["password", "email", "id", "roleId", "credit", "private"])) { continue; } if (isset($_POST[$objCol])) { $user->{$objCol} = $_POST[$objCol]; } } $user->save(); $this->flash("message", "Update information successfully."); // if picture selected if (isset($_FILES['user_picture']) && $_FILES['user_picture']['name'] != '') { $pictureName = "pic_u_" . $user->id . RUpload::get_extension($_FILES['user_picture']['name']); $upload = new RUpload(["file_name" => $pictureName, "upload_path" => Rays::app()->getBaseDir() . "/../" . User::PICTURE_DIR]); $upload->upload('user_picture'); if ($upload->error != '') { $this->flash("error", $upload->error); } else { $user->picture = "files/images/users/" . $upload->file_name; $user->save(); RImage::updateStyle($user->picture, User::getPicOptions()); } } if (Rays::user()->id == $user->id) { $this->redirectAction("user", "profile"); } else { $this->redirectAction("user", "view", [$user->id, "profile"]); } } else { $errors = $validation->getErrors(); $data['validation_errors'] = $errors; $data['editForm'] = $_POST; } } $this->layout = 'user'; $this->setHeaderTitle("Edit profile - " . $user->name); $this->render('edit', $data, false); }
public function uploadPicture($fileTag) { $uploadPath = Rays::app()->getBaseDir() . '/../' . self::PICTURE_PATH; $picName = 'group_' . $this->id . RUpload::get_extension($_FILES[$fileTag]['name']); $upload = new RUpload(array('file_name' => $picName, 'upload_path' => $uploadPath)); $upload->upload($fileTag); if ($upload->error != '') { return $upload->error; } else { $this->picture = "files/images/groups/" . $upload->file_name; $this->save(); RImage::updateStyle($this->picture, static::getPicOptions()); return true; } }