public function init() { $mainConfig = Ibos::engine()->getMainConfig(); $config = $mainConfig["cache"]; $this->_config = $config; $this->setExtension(); $this->_prefix = empty($config["prefix"]) ? substr(md5($_SERVER["HTTP_HOST"]), 0, 6) . "_" : $config["prefix"]; foreach (array("eaccelerator", "apc", "xcache", "wincache", "filecache") as $cache) { if (!is_object($this->_instance) && $this->_extension[$cache] && $this->config[strtolower($cache)]) { $className = ucfirst($cache); $this->_instance = new $className(); $this->_instance->init(null); break; } } if (is_object($this->_instance)) { $this->enable = true; $this->type = get_class($this->_instance); if (strtolower($this->type) == "filecache") { $this->_prefix = ""; } } else { throw new EnvException(Ibos::lang("Cache init error", "error")); } }
public function save($imgname, $type = NULL, $interlace = true) { if (empty($this->img)) { throw new Exception("没有可以被保存的图像资源"); } if (is_null($type)) { $type = $this->info["type"]; } else { $type = strtolower($type); } if ("jpeg" == $type || "jpg" == $type) { $type = "jpeg"; imageinterlace($this->img, $interlace); } if ("gif" == $type && !empty($this->gif)) { $this->gif->save($imgname); } else { $fun = "image{$type}"; if (!LOCAL) { $temp = Ibos::engine()->IO()->file()->fetchTemp(FileUtil::fileName($imgname), $this->info["type"]); $fun($this->img, $temp); $content = file_get_contents($temp); Ibos::engine()->IO()->file()->writeFile($imgname, $content); } else { $fun($this->img, $imgname); } } }
public static function makeThumb($attach, $width, $height) { $attachUrl = FileUtil::getAttachUrl(); $file = sprintf("%s/%s", $attachUrl, $attach["attachment"]); $fileext = StringUtil::getFileExt($file); $thumbName = self::getThumbName($attach, $width, $height); if (LOCAL) { $res = ImageUtil::thumb2($file, $thumbName, "", $width, $height); } else { $tempFile = FileUtil::getTempPath() . "tmp." . $fileext; $orgImgname = Ibos::engine()->IO()->file()->fetchTemp(FileUtil::fileName($file), $fileext); ImageUtil::thumb2($orgImgname, $tempFile, "", $width, $height); FileUtil::createFile($thumbName, file_get_contents($tempFile)); } return $thumbName; }
public function configure($config) { defined("ENGINE") || define("ENGINE", "LOCAL"); $this->setImport($config["import"]); unset($config["import"]); $engineClass = ucfirst(strtolower(ENGINE)) . "Engine"; $engine = new $engineClass($config); Ibos::setEngine($engine); parent::configure(Ibos::engine()->getEngineConfig()); }
public static function sendWebMail($toUser, $body, $web) { $user = User::model()->fetchByUid($web["uid"]); $password = StringUtil::authCode($web["password"], "DECODE", $user["salt"]); $mailer = Yii::createComponent("application.modules.email.extensions.mailer.EMailer"); $mailer->IsSMTP(); $mailer->SMTPDebug = 0; $mailer->Host = $web["smtpserver"]; $mailer->Port = $web["smtpport"]; $mailer->CharSet = "UTF-8"; if ($web["smtpssl"]) { $mailer->SMTPSecure = "ssl"; } $mailer->SMTPAuth = true; $mailer->Username = $web["username"]; $mailer->Password = $password; $mailer->setFrom($web["address"], $web["nickname"]); foreach (explode(";", $toUser) as $address) { $mailer->addAddress($address); } $mailer->Subject = $body["subject"]; $mailer->msgHTML($body["content"]); $mailer->AltBody = "This is a plain-text message body"; if (!empty($body["attachmentid"])) { $attachs = AttachUtil::getAttachData($body["attachmentid"]); $attachUrl = FileUtil::getAttachUrl(); foreach ($attachs as $attachment) { $url = $attachUrl . "/" . $attachment["attachment"]; if (LOCAL) { $mailer->addAttachment($url, $attachment["filename"]); } else { $temp = Ibos::engine()->IO()->file()->fetchTemp($url); $mailer->addAttachment($temp, $attachment["filename"]); } } } $status = $mailer->send(); if ($status) { return true; } else { return $mailer->ErrorInfo; } }
public static function copyToDir($file, $copyToPath) { if (FileUtil::fileExists($file)) { $name = basename($file); if (LOCAL) { $state = @copy($file, $copyToPath . $name); } else { $state = Ibos::engine()->IO()->file()->moveFile($file, $copyToPath . $name); } return $state; } }
private function addPicture($attach, $articleId) { $sort = 0; foreach ($attach as $value) { $picture = array("articleid" => $articleId, "aid" => $value["aid"], "sort" => $sort, "addtime" => TIMESTAMP, "postip" => StringUtil::getSubIp(), "filename" => $value["filename"], "title" => "", "type" => $value["filetype"], "size" => $value["filesize"], "filepath" => $value["attachment"]); if (Yii::app()->setting->get("setting/articlethumbenable")) { list($thumbWidth, $thumbHeight) = explode(",", Yii::app()->setting->get("setting/articlethumbwh")); $imageInfo = ImageUtil::getImageInfo(FileUtil::fileName($picture["filepath"])); if ($imageInfo["width"] < $thumbWidth && $imageInfo["height"] < $thumbHeight) { $picture["thumb"] = 0; } else { $sourceFileName = explode("/", $picture["filepath"]); $sourceFileName[count($sourceFileName) - 1] = "thumb_" . $sourceFileName[count($sourceFileName) - 1]; $thumbName = implode("/", $sourceFileName); if (LOCAL) { ImageUtil::thumb($picture["filepath"], $thumbName, $thumbWidth, $thumbHeight); } else { $tempFile = FileUtil::getTempPath() . "tmp." . $picture["type"]; $orgImgname = Ibos::engine()->IO()->file()->fetchTemp(FileUtil::fileName($picture["filepath"]), $picture["type"]); ImageUtil::thumb($orgImgname, $tempFile, $thumbWidth, $thumbHeight); FileUtil::createFile($thumbName, file_get_contents($tempFile)); } $picture["thumb"] = 1; } } ArticlePicture::model()->add($picture); $sort++; } }
public function actionIndex() { $operation = EnvUtil::getRequest("op"); switch ($operation) { case "thumbpreview": case "waterpreview": $temp = Ibos::engine()->IO()->file()->getTempPath() . "/watermark_temp.jpg"; if (LOCAL) { if (is_file($temp)) { @unlink($temp); } } $quality = EnvUtil::getRequest("quality"); $source = PATH_ROOT . "/static/image/watermark_preview.jpg"; if ($operation == "waterpreview") { $trans = EnvUtil::getRequest("trans"); $type = EnvUtil::getRequest("type"); $val = EnvUtil::getRequest("val"); $pos = EnvUtil::getRequest("pos"); if ($type == "image") { $sInfo = ImageUtil::getImageInfo($source); $wInfo = ImageUtil::getImageInfo($val); if ($sInfo["width"] < $wInfo["width"] || $sInfo["height"] < $wInfo["height"]) { Ibos::import("ext.ThinkImage.ThinkImage", true); $imgObj = new ThinkImage(THINKIMAGE_GD); $imgObj->open($val)->thumb(260, 77, 1)->save($val); } ImageUtil::water($source, $val, $temp, $pos, $trans, $quality); } else { $hexColor = EnvUtil::getRequest("textcolor"); $size = EnvUtil::getRequest("size"); $fontPath = EnvUtil::getRequest("fontpath"); $rgb = ConvertUtil::hexColorToRGB($hexColor); ImageUtil::waterMarkString($val, $size, $source, $temp, $pos, $quality, $rgb, self::TTF_FONT_PATH . $fontPath); } $image = $temp; } if (!LOCAL) { if (Ibos::engine()->IO()->file()->createFile($temp, file_get_contents($image))) { $image = FileUtil::fileName($temp); } } $data = array("image" => $image, "sourceSize" => ConvertUtil::sizeCount(FileUtil::fileSize($source)), "thumbSize" => ConvertUtil::sizeCount(FileUtil::fileSize($image)), "ratio" => sprintf("%2.1f", FileUtil::fileSize($image) / FileUtil::fileSize($source) * 100) . "%"); $this->render("imagePreview", $data); exit; break; case "upload": return $this->imgUpload("watermark", true); break; } $formSubmit = EnvUtil::submitCheck("uploadSubmit"); $uploadKeys = "attachdir,attachurl,thumbquality,attachsize,filetype"; $waterMarkkeys = "watermarkminwidth,watermarkminheight,watermarktype,watermarkposition,watermarktrans,watermarkquality,watermarkimg,watermarkstatus,watermarktext,watermarkfontpath"; if ($formSubmit) { $keys = $uploadKeys . "," . $waterMarkkeys; $keyField = explode(",", $keys); foreach ($_POST as $key => $value) { if (in_array($key, $keyField)) { Setting::model()->updateSettingValueByKey($key, $value); } elseif ($key == "watermarkstatus") { Setting::model()->updateSettingValueByKey("watermarkstatus", 0); } } CacheUtil::update(array("setting")); $this->success(Ibos::lang("Save succeed", "message")); } else { $upload = Setting::model()->fetchSettingValueByKeys($uploadKeys); $waterMark = Setting::model()->fetchSettingValueByKeys($waterMarkkeys); $fontPath = DashboardUtil::getFontPathlist(self::TTF_FONT_PATH); $data = array("upload" => $upload, "waterMark" => $waterMark, "fontPath" => $fontPath); $this->render("index", $data); } }