public static function generateAvatar($username) { $width = 105; $height = 105; $pixel = 15; $filename = $username . '.png'; $image = imagecreatetruecolor($width, $height); $white = imagecolorallocate($image, 255, 255, 255); if (!isset($color)) { $color = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); } for ($i = 0; $i <= $width / 2; $i = $i + $pixel) { for ($j = 0; $j < $height; $j = $j + $pixel) { if (mt_rand(0, 1) == 0) { imagefilledrectangle($image, $i, $j, $i + $pixel, $j + $pixel, $white); imagefilledrectangle($image, $width - $i - $pixel, $j, $width - $i, $j + $pixel, $white); } else { imagefilledrectangle($image, $i, $j, $i + $pixel, $j + $pixel, $color); imagefilledrectangle($image, $width - $i - $pixel, $j, $width - $i, $j + $pixel, $color); } } } imagepng($image, 'media/' . $filename); $ext = File::getExtension(\Rebond\Config::getPath('media') . $filename); $noExt = File::getNoExtension($filename); $media = new \Rebond\Core\Media\Model(); $media->setTitle($noExt); $media->setAlt($noExt); $media->setOriginalFilename($filename); $media->setExtension($ext); $media->setWidth($width); $media->setHeight($height); $media->setFilesize(filesize(\Rebond\Config::getPath('media') . $filename)); $media->setMimetype($ext); $media->setUpload($filename); $media->setIsSelectable(false); $media->save(); return $media->getId(); }
public function uploadify() { $json = []; $json['result'] = ResultType::ERROR; // check $id = Converter::int('userId', 'post', 0); $this->signedUser = \Rebond\Core\User\Data::loadById($id); if (!isset($this->signedUser)) { $json['message'] = Lang::lang('accessNonAuthorized'); return json_encode($json); } if (!$this->hasPrivilege('admin.media.upload')) { return $this->noPrivilege('admin.media.upload'); } $folderId = Converter::int('folderId', 'post'); $isSelectable = Converter::int('isSelectable', 'post', 1); if (!isset($folderId)) { $json['message'] = Lang::lang('errorInvalidParameters'); return json_encode($json); } $upload = \Rebond\Util\Media::upload('', $_FILES['Filedata']); $originalName = $_FILES['Filedata']['name']; if ($upload == ResultType::ERROR) { $json['message'] = Lang::lang('errorFileUpload', [$originalName]); Log::log(Error::MEDIA_NOT_SAVED, $json['message'], __FILE__, __LINE__); return json_encode($json); } list($w, $h) = getimagesize(\Rebond\Config::getPath('media') . $upload); $ext = \Rebond\Util\File::getExtension(\Rebond\Config::getPath('media') . $upload); $noExt = \Rebond\Util\File::getNoExtension($originalName); $media = new \Rebond\Core\Media\Model(); $media->setFolderId($folderId); $media->setTitle($noExt); $media->setAlt($noExt); $media->setOriginalFilename($originalName); $media->setExtension($ext); $media->setWidth($w); $media->setHeight($h); $media->setFilesize(filesize(\Rebond\Config::getPath('media') . $upload)); $mimeType = new \finfo(FILEINFO_MIME_TYPE); $media->setMimetype($mimeType->file(\Rebond\Config::getPath('media') . $upload)); $media->setUpload($upload); $media->setIsSelectable($isSelectable); $media->save(); $json['result'] = ResultType::SUCCESS; $json['id'] = $media->getId(); $json['message'] = Lang::lang('mediaUploaded', [$originalName]); return json_encode($json); }