Tag: KindEditor

KindEditor编辑器上传图片添加水印功能

14 条评论

2011 年 11 月 01 日 at 08:11分类:设计开发

<?php
/**
* KindEditor PHP
*
* 本PHP程序是演示程序,建议不要直接在实际项目中使用。
* 如果您确定直接使用本程序,使用之前请仔细确认相关安全设置。
*
*
*关于加水印的地方有几个地方要设置一下啊!!!!!!! 具体在下部分 自己找一下。
*
*/

require_once ‘JSON.php’;
$php_path = dirname(__FILE__) . ‘/’;
$php_url = dirname($_SERVER['PHP_SELF']) . ‘/’;

//文件保存目录路径
$save_path = $php_path . ‘../../attached/’;
//文件保存目录URL
$save_url = $php_url . ‘../../attached/’;
//定义允许上传的文件扩展名
$ext_arr = array(‘gif’, ‘jpg’, ‘jpeg’, ‘png’, ‘bmp’);
//最大文件大小
$max_size = 1000000;

$save_path = realpath($save_path) . ‘/’;

//有上传文件时
if (empty($_FILES) === false) {
//原文件名
$file_name = $_FILES['imgFile']['name'];
//服务器上临时文件名
$tmp_name = $_FILES['imgFile']['tmp_name'];
//文件大小
$file_size = $_FILES['imgFile']['size'];

$image_size = getimagesize($tmp_name);

//检查文件名
if (!$file_name) {
alert(“请选择文件。”);
}
//检查目录
if (@is_dir($save_path) === false) {
alert(“上传目录不存在。”);
}
//检查目录写权限
if (@is_writable($save_path) === false) {
alert(“上传目录没有写权限。”);
}
//检查是否已上传
if (@is_uploaded_file($tmp_name) === false) {
alert(“临时文件可能不是上传文件。”);
}
//检查文件大小
if ($file_size > $max_size) {
alert(“上传文件大小超过限制。”);
}
//获得文件扩展名
$temp_arr = explode(“.”, $file_name);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext);
//检查扩展名
if (in_array($file_ext, $ext_arr) === false) {
alert(“上传文件扩展名是不允许的扩展名。”);
}
//创建文件夹
$ymd = date(“Ymd”);
$save_path .= $ymd . “/”;
$save_url .= $ymd . “/”;
if (!file_exists($save_path)) {
mkdir($save_path);
}
//新文件名
$new_file_name = date(“YmdHis”) . ‘_’ . rand(10000, 99999) . ‘.’ . $file_ext;
//移动文件
$file_path = $save_path . $new_file_name;
if (move_uploaded_file($tmp_name, $file_path) === false) {
alert(“上传文件失败。”);
}

//@chmod($file_path, 0644);
$file_url = $save_url . $new_file_name;

$watermark=1; //是否附加水印(1为加水印,其他为不加水印);
$watertype=2; //水印类型(1为文字,2为图片)
$waterstring=”http://www.vedeng.com/”; //水印字符串
$waterimg=”http://bj.com/ved/mark.gif”; //水印图片,试了相对路不行,只好用绝对路径。

if($watermark==1)
{
$myfilename=”../../attached/”.$ymd.”/”.$new_file_name;
$iinfo=getimagesize($myfilename,$iinfo);
$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
$white=imagecolorallocate($nimage,255,255,255);
$black=imagecolorallocate($nimage,0,0,0);
$red=imagecolorallocate($nimage,255,0,0);
imagefill($nimage,0,0,$white);
switch ($iinfo[2])
{
case 1:
$simage =imagecreatefromgif($myfilename);
break;
case 2:
$simage =imagecreatefromjpeg($myfilename);
break;
case 3:
$simage =imagecreatefrompng($myfilename);
break;
case 6:
$simage =imagecreatefromwbmp($myfilename);
break;
default:
die(“不支持的文件类型”);
exit;
}

imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);

switch($watertype)
{
case 1: //加水印字符串
imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
break;
case 2: //加水印图片
$simage1 =imagecreatefromgif($waterimg);
imagecopymerge($nimage,$simage1,$image_size[0]-150,$image_size[1]-50,0,0,150,50,60); //设置水印的位置
imagedestroy($simage1);
break;
}

switch ($iinfo[2])
{
case 1:
//imagegif($nimage, $destination);
imagejpeg($nimage, $myfilename);
break;
case 2:
imagejpeg($nimage, $myfilename);
break;
case 3:
imagepng($nimage, $myfilename);
break;
case 6:
imagewbmp($nimage,$myfilename);
//imagejpeg($nimage, $destination);
break;
}

//覆盖原上传文件
imagedestroy($nimage);
imagedestroy($simage);
}

header(‘Content-type: text/html; charset=UTF-8′);
$json = new Services_JSON();
echo $json->encode(array(‘error’ => 0, ‘url’ => $file_url));
exit;
}

function alert($msg) {
header(‘Content-type: text/html; charset=UTF-8′);
$json = new Services_JSON();
echo $json->encode(array(‘error’ => 1, ‘message’ => $msg));
exit;
}
?>

ECSHOP换KindEditor编辑器

4 条评论

2011 年 11 月 01 日 at 08:10分类:CMS建站

ECSHOP一直用的FCK,这个不解释,太多杯具太多纠结。

————————————————————–
KindEdito主要特点
快速:体积小,加载速度快
开源:开放源代码,高水平,高品质
底层:内置自定义 DOM 类库,精确操作 DOM
扩展:基于插件的设计,所有功能都是插件,可根据需求增减功能
风格:修改编辑器风格非常容易,只需修改一个 CSS 文件
兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera
—————————————————————
官方下载最新版,解压直接扔在根目录算了,现在拿编辑产品信息开刀,模板页面?这个不用说了吧(admin/templates/goods_info.html).
1.在head部分添加:

<script charset=”utf-8″ src=”../kindeditor/kindeditor.js”></script>
<script>
KE.show({
id : ‘editor_id’,
allowFileManager : true

});
</script>

2.修改产品描述所调用的FCK编辑器 {$FCKeditor} 为
<textarea id=”editor_id” name=”goods_desc” style=”width:90%;height:300px;”>
{$goods.goods_desc}
</textarea>

OK,至此结束,看看效果吧!