示例#1
0
 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();
 }
示例#2
0
 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);
 }