CKEditor实现图片上传,并且回调图片路径

CKEditor编辑器的工具栏中初始的时候应该是这样子的,没有图片上传按钮

并且预览中有一堆火星文,可以修改相应配置删除它。

第一种方法:打开ckeditor/plugins/image/dialogs/image.js文件,搜索“b.config.image_previewText”,(b.config.image_previewText||‘‘)单引号中的内容全删了,注意别删多了。(由于ckeditor的很多js文件都是压缩过的,格式很难看,很容易删错,所以不推荐此种方法)

第二种方法:打开config.js文件,加入下面一句话

config.image_previewText=‘ ‘; //预览区域显示内容

下面研究图片上传

要想出现上传按钮,两种方法

第一种:还是刚才那个image.js
搜索“upload”可以找到这一段 id:‘Upload‘,hidden:true,而我使用的4.3的是

id:"Upload",hidden:!0,反正改为false就行了,(遗憾的是此种方法对我这个版本不起作用)

第二种:打开config.js文件,加入下面一句话

config.filebrowserImageUploadUrl= "admin/UserArticleFileUpload.do"; //待会要上传的action或servlet

OK现在基本上是下面这个样子的了

上面的只是一个上传页面。也就相当于一个HTML的form表单,

要配置点击"上传到服务器上"按钮后请求的Action。已在ckeditor/config.js中配置。

就是上面的 config.filebrowserImageUploadUrl = "admin/UserArticleFileUpload.do";

可使用chrome审查元素查看代码


接下来就是action中的上传方法:

route

$app->post(‘/savePic‘,function() use($app){

    $data=\model\Agv::uploadPic();

});

  

model方法

//上传图片
    public static function uploadPic()
    {
        $file_type=array(‘image/jpg‘,‘image/gif‘,‘image/png‘,‘image/bmp‘,‘image/jpeg‘);//文件类型
        $max_size=‘1048576‘;      // 最大文件限制(单位:byte)
        $upload_path=‘./attached/img‘.date("Ym").‘/‘; //图片目录路径

        $file=$_FILES[‘upload‘];
        if (!is_dir($upload_path)) {    //判断存放文件目录是否存在
            mkdir($upload_path,0777,true);
        }
        if(!is_uploaded_file($file[‘tmp_name‘])){ //判断上传文件是否存在tmp_name
            $rs[‘message‘] = 2;//上传文件不存在
            return $rs;
        }
        if($file[‘size‘]>$max_size){  //判断文件大小是否大于500000字节
            $rs[‘message‘] = 3;//上传文件大
            return $rs;
        }
        if(!in_array($file[‘type‘],$file_type)){  //判断图片文件的格式
            $rs[‘message‘] = 4;//上传文件格式不对
            return $rs;
        }
        $image_size = getimagesize($file[‘tmp_name‘]);
        $img = $image_size[0].‘*‘.$image_size[1];
        $name = $file[‘name‘];
        $fname = explode(‘.‘, $name);
        $pic_path = $upload_path.date("YmdHis").rand(100,999).".".$fname[1];
        if(file_exists($pic_path)){
            $rs[‘message‘] = 5;//文件重名
            return $rs;
        }
        if(!move_uploaded_file($file[‘tmp_name‘],$pic_path)){
            $rs[‘message‘] = 6;//文件移动错误
            return $rs;
        }else{
            $rs[‘message‘] = 1;//文件上传成功
        }

        $rs[‘path‘] = substr($pic_path, 1);
        //回调函数 返回图片预览
        $callback = $_REQUEST["CKEditorFuncNum"];
        echo "<script type=‘text/javascript‘>window.parent.CKEDITOR.tools.callFunction($callback,‘".$pic_path."‘,‘‘);</script>";
    }

  

config.js

	config.image_previewText=‘ ‘; //预览区域显示内容

	config.filebrowserImageUploadUrl= "savePic"; //待会要上传的action或servlet

图像预览

点击确定即可插入到文章里

时间: 2024-11-10 08:32:22

CKEditor实现图片上传,并且回调图片路径的相关文章

html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器

原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上传组件添加了单独的图片上传UI,支持图片预览和缩放(通过调整图片的大小以实现图片压缩). 上传组件特点 轻量级,不依赖任何JS库,核心代码(Q.Uploader.js)仅约700行,min版本加起来不到12KB 纯

图片上传时获取图片的宽和高

经常会遇到图片上传的问题,这时候我们会传图片的地址,宽和高到服务器,至于图片上传就不说了,这里主要说图片上传时获取图片的原始宽和高的问题. 一般而言,我们把图片上传至服务器时,服务器会返回一个上传地址给我们,这个就是我们图片的url了,但是光有这个还是不够的,因为还要将图片的宽和高传给服务器,这时候就可以这样做了.直接上代码: var img = new Image() img.src = url 然后就可以使用img.width和img.height来获取图片的宽和高了.当然仅仅这样做是不够的

kindeditor更改图片上传时网络图片的路径

当我们想要使用kindeditor的图片上传功能时,有两种选择图片方式,一种是本地选择,一种是在图片空间中选择,图片空间的默认地址是服务器上的/kindeditor/attached/image/下面. 如果想要改变这个路径,需要找到/kindeditor/php/file_manager_json.php这个文件,然后可以看到下面几行: //根目录路径,可以指定绝对路径,比如 /var/www/attached/ $root_path = $php_path . '../attached/';

ueditor使用-图片上传正常,图片显示异常404

做个小项目,用到了ueditor,其中需要在ueditor中上传图片. 问题症状: 点击上传图片的按钮后选择图片,上传到了目的文件夹,但是显示不了,f12查看也是404.后来发觉显示图片时路径不对. 解决方案: 翻看官网文档,找到了个博客:http://popozhu.github.io/2014/07/03/ueditor%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0%E8%B7%AF%E5%BE%84%E9%85%8D%E7%BD%AE/ 说的还蛮详细.找了下原因,

妈蛋:kinMaxShow轮播图异常,WebUploader图片上传坑爹,图片被压缩了

今天晚上在改造轮播图. 原来的代码是这样的: <div> <img src="${static}/image/index/banner/`.jpg" /> </div> <div> <img src="${static}/image/index/banner/2.jpg" /> </div> <div> <img src="${static}/image/index/

关于图片上传时选择图片以后生成图片预览

实现选择图片之后生成预览图 <script type="text/javascript">    //下面用于多图片上传预览功能    function setImagePreviews() {        //获取选择图片的对象        var docObj = document.getElementById("filesid");        //后期显示图片区域的对象        var dd = document.getElement

前端手势控制图片插件书写四(图片上传及Ios图片方向问题)

1.在图片上传中,使用的input的type为File的属性.使用filereader的Api let that = this; var file = document.getElementById("file").files[0]; console.log(document.getElementById("file").files); if(!/image\/\w+/.test(file.type)){ console.error("看清楚,这个需要图片

JavaScript图片上传前的图片预览功能

JS代码: 1 //js本地图片预览,兼容ie[6-9].火狐.Chrome17+.Opera11+.Maxthon3 2 function PreviewImage(fileObj, imgPreviewId, divPreviewId) { 3 var allowExtention = ".jpg,.bmp,.gif,.png"; //允许上传文件的后缀名document.getElementById("hfAllowPicSuffix").value; 4 v

图片上传 自定义设置图片大小

if($_FILES['img_slide']['name']=="") { $phpto_dir_name=""; header("Content-type:text/html;charset=utf-8"); echo "没有选择上传图片"; return $this->getDefaultView(); }else{ //将临时文件复制到upload_image目录下 $img_slide=($_FILES['im